When running a different version of docker outside of the default in the integration image, then commands will fail with mismatched version unless the docker binary is specified to the correct version.
Add various cleanups to run script.
Run all commands interacting with docker inside the container in an exec.
Remove port binding to outside of container since all commands run inside.
Trap docker rm to exit in case of failure which prevents final command from running.
Do no copy images when $DOCKER_VOLUME is specified, this allows for faster runs when mounting a volume with a warm image cache.
Move exec and graph driver defaulting into run engine script.
Remove duplicated update of /etc/hosts.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Previously, the strategy for avoiding lots of rebuilding and repulling
for each Docker version being tested was to use a mountpoint to persist
/var/lib/docker. This was pretty broken, and may not be a reliable
strategy. This commit changes the scripts to instead build/pull images
outside the innermost container, and copy them to the final test
environment with docker save/docker load.
This requires a fair amount of changes, since run.sh must now
communicate with the Docker engine that was formerly started by
test_runner.sh. The code that starts this engine has been broken out to
run_engine.sh so that starting the engine and running the tests under it
can be done separately (with the images loaded in between these steps).
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
- Upgrade docker-compose to 1.3.3 to work around
https://github.com/docker/compose/issues/1314
- Change run.sh to run the Docker container in the foreground so that
the exit code is propagated.
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
- Add a command line argument to run_multiversion.sh which has it start
a docker daemon. This allows it to run directly inside an outermost
docker-integration container instead of running outside all containers.
- Install Docker 1.7.1 intead of 1.7.0-rc1 in the docker-integration
container. 1.7.0 has a bug that prevents "docker cp" from working
properly.
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This is much better than downloading the builds with curl, because
Docker is intelligent about only pulling what it needs.
We use tagged versions of dind for the released version, and dind-master
for a master build.
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
Add a run_multiversion.sh script that downloads a variety of Docker
engines and runs the integration tests against each of them.
Skip some of the tests when running with Docker 1.6.0. It has a bug that
prevents these tests from completing successfully.
Fixes#751
Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
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)
Added an environment variable which can be used to pass in the docker volume for the container. This allows caching the pulled images between runs, preventing unnecessary image pulls.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Remove Makefile in favor of run.sh script or manual instructions.
Update readme to reflect instructions for running integration tests.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)
Add test script to run through each endpoint.
Add certificates for non-localhost hostname. Requires setting /etc/hosts.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)