dotfiles/dev/README.md

1.5 KiB

dev

This directory contains some useful dockerfiles/makefiles that can be used to test the deployment ansible playbooks.

make arch # this builds a docker image based on archlinux and runs it
make debian # this builds a docker image based on debian and runs it

Workflow

Start a builder in one shell:

while true; do make; done

check for the docker IP of the started container.

Test the playbook in another shell:

ansible-playbook -v -i ./ansible-hosts playbooks/setup.yml

note: the ip address in ansible-hosts might have changed from 172.18.0.2.

Docker images

  • Build: make build-arch or make build-debian to build the image.
  • Run: make run to run the docker container. This bind-mounts ../ to /root/.dotfiles, making it possible to test the repo in the container.

Docker + Ansible

Run dotfiles-dev image using make run. This starts the container with the local repository bind-mounted on /root/.dotfiles. To use a custom volume:

docker run -v <volume>:/root/dofiles`

Ansible can now be used to test the installation.

# this will install dotfiles on the docker container
ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i ansible-hosts \
				-e local_development=true \
				../ansible/playbooks/setup.yml

IMPORTANT if bind-mounting an already existing repository, run ansible with -e local_development=true to avoid clobbering the git history if you have unpushed commit (it won't work if your repo is dirty).