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)
This driver implements the storagedriver.StorageDriver interface and
uses Ceph Object Storage as storage backend.
Since RADOS is an object storage and no hierarchy notion, the
following convention is used to keep the filesystem notions stored in
this backend:
* All the objects data are stored with opaque UUID names prefixed
(e.g. "blob:d3d232ff-ab3a-4046-9ab7-930228d4c164).
* All the hierarchy information are stored in rados omaps, where the
omap object identifier is the virtual directory name, the keys in
a specific are the relative filenames and the values the blob
object identifier (or empty value for a sub directory).
e.g. For the following hierarchy:
/directory1
/directory1/object1
/directory1/object2
/directory1/directory2/object3
The omap "/directory1" will contains the following key / values:
- "object1" "blob:d3d232ff-ab3a-4046-9ab7-930228d4c164"
- "object2" "blob:db2e359d-4af0-4bfb-ba1d-d2fd029866a0"
- "directory2" ""
The omap "/directory1/directory2" will contains:
- "object3" "blob:9ae2371c-81fc-4945-80ac-8bf7f566a5d9"
* The MOVE is implemented by changing the reference to a specific
blob in its parent virtual directory omap.
This driver stripes rados objects to a fixed size (e.g. 4M). The idea
is to keep small objects (as done by RBD on the top of RADOS) that
will be easily synchronized accross OSDs. The information of the
original object (i.e total size of the chunks) is stored as a Xattr
in the first chunk object.
Signed-off-by: Vincent Giersch <vincent.giersch@ovh.net>
Fixing typos and adding tables
Updating with testing material
Tweak after read through
Adding in Stephen's comments
Adding in Richard's comments. Fixing the broken images
closes issue #363
Another try
Signed-off-by: Mary Anthony <mary@docker.com>
Set forward headers so the IP and scheme get sent to the registry. This allows the registry to set a proper redirect with the correct scheme when HTTPS is being used.
Signed-off-by: Derek McGowan <derek@mcgstyle.net> (github: dmcgowan)