Optimized for use with Concourse CI.
The image is Alpine based, and includes Docker, Docker Compose, and Docker Squash, as well as Bash.
Image published to Docker Hub: karlkfi/concourse-dcind.
Inspired by meAmidos/dcind, concourse/docker-image-resource, and mesosphere/mesos-slave-dind.
Unlike meAmidos/dcind, this image...
- Does not require the user to manually start docker.
- Uses errexit, pipefail, and nounset.
- Configures timeout (
DOCKERD_TIMEOUT
) on dockerd start to account for mis-configuration (docker log will be output). - Accepts arbitrary dockerd arguments via optional
DOCKER_OPTS
environment variable. - Passes through
--garden-mtu
from the parent Gardian container if--mtu
is not specified inDOCKER_OPTS
. - Sets
--data-root /scratch/docker
to bypass the graph filesystem if--data-root
is not specified inDOCKER_OPTS
.
docker build -t karlkfi/concourse-dcind .
Here is an example of a Concourse job that uses karlkfi/concourse-dcind
image to run a bunch of containers in a task, and then runs the integration test suite. You can find a full version of this example in the example
directory.
jobs:
- name: integration
plan:
- get: code
params:
depth: 1
passed:
- unit-tests
trigger: true
- task: integration-tests
privileged: true
config:
platform: linux
image_resource:
type: docker-image
source:
repository: karlkfi/concourse-dcind
inputs:
- name: code
run:
path: entrypoint.sh
args:
- bash
- -ceux
- |
# start containers
docker-compose -f code/example/integration.yml run tests
# stop and remove containers
docker-compose -f code/example/integration.yml down
# remove volumes
docker volume rm $(docker volume ls -q)