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 _run; 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`

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).

Ansible can now be used to test the installation.

make ansible

Releasing

Use make release to build an image from scratch, run it, install dotfiles in the container using ansible, then commit the resulting container.