Skip to content

Instantly share code, notes, and snippets.

@squirly
Last active July 22, 2016 23:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save squirly/e79f74b2d65b4c1a9aae5b3e6d55d061 to your computer and use it in GitHub Desktop.
Save squirly/e79f74b2d65b4c1a9aae5b3e6d55d061 to your computer and use it in GitHub Desktop.
Using docker with CircleCI
machine:
services:
- docker
checkout:
post:
- find . -exec touch -t 201401010000 {} \;
- IFS=$'\n'; for x in $(git ls-tree --full-tree --name-only -r HEAD); do touch -t $(date -d "$(git log -1 --format=%ci "${x}")" +%y%m%d%H%M.%S) "${x}"; done
dependencies:
cache_directories:
- "~/docker"
override:
- mkdir -p ~/docker
- if [[ -e ~/docker/my_image.tar ]]; then docker load -i ~/docker/my_image.tar; fi
- docker build -t squirly/my_image:$CIRCLE_SHA1 .
- docker save squirly/my_image:$CIRCLE_SHA1" > ~/docker/my_image.tar
dependencies:
cache_directories:
- "~/docker"
override:
- mkdir -p ~/docker
- if [[ ! -e ~/docker/redis:2.8.tar ]]; then docker pull "redis:2.8" && docker save "redis:2.8" > ~/docker/redis:2.8.tar; else docker load -i ~/docker/redis:2.8.tar; fi
- if [[ ! -e ~/docker/postgres:9.3.tar ]]; then docker pull "postgres:9.3" && docker save "postgres:9.3" > ~/docker/postgres:9.3.tar; else docker load -i ~/docker/postgres:9.3.tar; fi
database:
override:
- docker run -d --name redis redis:2.8;
- docker run -d --name postgres -e POSTGRES_USER=deploy postgres:9.3
- sleep 10
- docker run --link postgres:postgres postgres:9.3 createdb -U user -h postgres MyDB
- cat schema.sql | docker run --link postgres:postgres -i postgres:9.3 psql -U deploy -h postgres MyDb
test:
override:
- docker run -t --link redis:redis --link postgres:postgres -v $CIRCLE_TEST_REPORTS:/reports squirly/my_image:$CIRCLE_SHA1 ./bin/test --format junit --out /reports/tests.xml"
deployment:
hub:
branch: /.*/
commands:
- docker info
- echo '{"https://index.docker.io/v1/":{"auth":"'$DOCKER_AUTH'","email":"'$DOCKER_EMAIL'"}}' > ~/.dockercfg
- docker tag "squirly/my_image:$CIRCLE_SHA1" "squirly/my_image:$CIRCLE_BRANCH"
- docker push "squirly/my_image:$CIRCLE_SHA1"
- docker push "squirly/my_image:$CIRCLE_BRANCH"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment