moby--moby/hack/infrastructure/docker-ci
Tianon Gravi 44fe8cbbd1 Update to double-dash everywhere
These were found using `git grep -nE '[^-a-zA-Z0-9<>]-[a-zA-Z0-9]{2}'` (fair warning: _many_ false positives there).

Docker-DCO-1.1-Signed-off-by: Andrew Page <admwiggin@gmail.com> (github: tianon)
2014-03-13 11:46:02 -06:00
..
buildbot docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00
dcr docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00
docker-coverage docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00
dockertest Update to double-dash everywhere 2014-03-13 11:46:02 -06:00
functionaltests docker-ci 0.4.5: Sync tests with progress in docker and docker-registry. Use revamped shiny DinD. 2013-11-06 20:05:26 -08:00
nginx docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00
report docker-ci 0.4.5: Sync tests with progress in docker and docker-registry. Use revamped shiny DinD. 2013-11-06 20:05:26 -08:00
testbuilder Update to double-dash everywhere 2014-03-13 11:46:02 -06:00
tool docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00
Dockerfile Update to double-dash everywhere 2014-03-13 11:46:02 -06:00
MAINTAINERS
README.rst Update to double-dash everywhere 2014-03-13 11:46:02 -06:00
VERSION docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00
setup.sh docker-ci 0.5.6: Fully dockerize docker-ci. Add build test coverage. Add backup builder. 2014-02-17 10:52:39 -08:00

README.rst

=========
docker-ci
=========

This directory contains docker-ci continuous integration system.
As expected, it is a fully dockerized and deployed using
docker-container-runner.
docker-ci is based on Buildbot, a continuous integration system designed
to automate the build/test cycle. By automatically rebuilding and testing
the tree each time something has changed, build problems are pinpointed
quickly, before other developers are inconvenienced by the failure.
We are running buildbot at Rackspace to verify docker and docker-registry
pass tests, and check for coverage code details.

docker-ci instance is at https://docker-ci.docker.io/waterfall

Inside docker-ci container we have the following directory structure:

/docker-ci                       source code of docker-ci
/data/backup/docker-ci/          daily backup (replicated over S3)
/data/docker-ci/coverage/{docker,docker-registry}/    mapped to host volumes
/data/buildbot/{master,slave}/   main docker-ci buildbot config and database
/var/socket/{docker.sock}        host volume access to docker socket


Production deployment
=====================

::

  # Clone docker-ci repository
  git clone https://github.com/dotcloud/docker
  cd docker/hack/infrastructure/docker-ci

  export DOCKER_PROD=[PRODUCTION_SERVER_IP]

  # Create data host volume. (only once)
  docker -H $DOCKER_PROD run -v /home:/data ubuntu:12.04 \
    mkdir -p /data/docker-ci/coverage/docker
  docker -H $DOCKER_PROD run -v /home:/data ubuntu:12.04 \
    mkdir -p /data/docker-ci/coverage/docker-registry
  docker -H $DOCKER_PROD run -v /home:/data ubuntu:12.04 \
    chown -R 1000.1000 /data/docker-ci

  # dcr deployment. Define credentials and special environment dcr variables
  # ( retrieved at /hack/infrastructure/docker-ci/dcr/prod/docker-ci.yml )
  export WEB_USER=[DOCKER-CI-WEBSITE-USERNAME]
  export WEB_IRC_PWD=[DOCKER-CI-WEBSITE-PASSWORD]
  export BUILDBOT_PWD=[BUILDSLAVE_PASSWORD]
  export AWS_ACCESS_KEY=[DOCKER_RELEASE_S3_ACCESS]
  export AWS_SECRET_KEY=[DOCKER_RELEASE_S3_SECRET]
  export GPG_PASSPHRASE=[DOCKER_RELEASE_PASSPHRASE]
  export BACKUP_AWS_ID=[S3_BUCKET_CREDENTIAL_ACCESS]
  export BACKUP_AWS_SECRET=[S3_BUCKET_CREDENTIAL_SECRET]
  export SMTP_USER=[MAILGUN_SMTP_USERNAME]
  export SMTP_PWD=[MAILGUN_SMTP_PASSWORD]
  export EMAIL_RCP=[EMAIL_FOR_BUILD_ERRORS]

  # Build docker-ci and testbuilder docker images
  docker -H $DOCKER_PROD build -t docker-ci/docker-ci .
  (cd testbuilder; docker -H $DOCKER_PROD build --rm -t docker-ci/testbuilder .)

  # Run docker-ci container ( assuming no previous container running )
  (cd dcr/prod; dcr docker-ci.yml start)
  (cd dcr/prod; dcr docker-ci.yml register docker-ci.docker.io)