Add docker developer flow

Integrate flags better with the development flow a Docker developer.
Add a shell function to make invocation of tests easy.

Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
This commit is contained in:
Derek McGowan 2015-06-03 10:18:02 -07:00
parent a438494b49
commit 19ec4e2c7a
2 changed files with 54 additions and 4 deletions

View file

@ -29,7 +29,53 @@ Run with aufs driver and tmp volume
**NOTE: Using a volume will prevent multiple runs from needing to **NOTE: Using a volume will prevent multiple runs from needing to
re-pull images** re-pull images**
``` ```
$ STORAGE_DRIVER=aufs DOCKER_VOLUME=/tmp/volume ./run.sh $ DOCKER_GRAPHDRIVER=aufs DOCKER_VOLUME=/tmp/volume ./run.sh
```
### Example developer flow
These tests are useful for developing both as a registry and docker
core developer. The following setup may be used to do integration
testing between development versions
Insert into your `.zshrc` or `.bashrc`
```
# /usr/lib/docker for Docker-in-Docker
# Set this directory to make each invocation run much faster, without
# the need to repull images.
export DOCKER_VOLUME=$HOME/.docker-test-volume
# Use overlay for all Docker testing, try aufs if overlay not supported
export DOCKER_GRAPHDRIVER=overlay
# Name this according to personal preference
function rdtest() {
if [ "$1" != "" ]; then
DOCKER_BINARY=$GOPATH/src/github.com/docker/docker/bundles/$1/binary/docker
if [ ! -f $DOCKER_BINARY ]; then
current_version=`cat $GOPATH/src/github.com/docker/docker/VERSION`
echo "$DOCKER_BINARY does not exist"
echo "Current checked out docker version: $current_version"
echo "Checkout desired version and run 'make binary' from $GOPATH/src/github.com/docker/docker"
return 1
fi
fi
$GOPATH/src/github.com/docker/distribution/contrib/docker-integration/run.sh
}
```
Run with Docker release version
```
$ rdtest
```
Run using local development version of docker
```
$ cd $GOPATH/src/github.com/docker/docker
$ make binary
$ rdtest `cat VERSION`
``` ```
## Running manually outside of Docker ## Running manually outside of Docker

View file

@ -11,6 +11,11 @@ if [ "$DOCKER_VOLUME" != "" ]; then
volumeMount="-v ${DOCKER_VOLUME}:/var/lib/docker" volumeMount="-v ${DOCKER_VOLUME}:/var/lib/docker"
fi fi
dockerMount=""
if [ "$DOCKER_BINARY" != "" ]; then
dockerMount="-v ${DOCKER_BINARY}:/usr/local/bin/docker"
fi
# Image containing the integration tests environment. # Image containing the integration tests environment.
INTEGRATION_IMAGE=${INTEGRATION_IMAGE:-distribution/docker-integration} INTEGRATION_IMAGE=${INTEGRATION_IMAGE:-distribution/docker-integration}
@ -18,10 +23,9 @@ INTEGRATION_IMAGE=${INTEGRATION_IMAGE:-distribution/docker-integration}
docker pull $INTEGRATION_IMAGE docker pull $INTEGRATION_IMAGE
# Start the integration tests in a Docker container. # Start the integration tests in a Docker container.
ID=$(docker run -d -t --privileged $volumeMount \ ID=$(docker run -d -t --privileged $volumeMount $dockerMount \
-v ${DISTRIBUTION_ROOT}:/go/src/github.com/docker/distribution \ -v ${DISTRIBUTION_ROOT}:/go/src/github.com/docker/distribution \
-e "DOCKER_VERSION=$DOCKER_VERSION" \ -e "STORAGE_DRIVER=$DOCKER_GRAPHDRIVER" \
-e "STORAGE_DRIVER=$STORAGE_DRIVER" \
-e "EXEC_DRIVER=$EXEC_DRIVER" \ -e "EXEC_DRIVER=$EXEC_DRIVER" \
${INTEGRATION_IMAGE} \ ${INTEGRATION_IMAGE} \
./test_runner.sh "$@") ./test_runner.sh "$@")