Automated build available on Docker Hub.
This image is based on the tehranian/dind-jenkins-slave docker image, with the addition of AWS CLI and the silinternational/ecs-deploy script.
The combination of these tools makes it relatively simple to build, test, push, and deploy (to Amazon ECS) from Jenkins.
As with tehranian/dind-jenkins-slave, you need to run with --privileged
for nested docker to work.
See the parent instructions. Please note that using Docker-in-Docker for CI is discouraged due to the need for the --privileged
flag, along with some potential filesystem issues and inefficiencies.
In my own limited testing, I've found that building images with Docker-in-Docker works, but the aforementioned filesystem issues prevent the slave container from cleaning up temporary containers and images.
I've since opted to use sibling containers rather than child containers, as suggested by jpetazzo. In that case, it's still useful to have the docker CLI bundled into this Jenkins slave image (e.g., using the -H
option to connect to another daemon socket) to eliminate the need for scripting to a docker client elsewhere.