From e5239b98598ece4287c1088e95a2eaed585d2da4 Mon Sep 17 00:00:00 2001 From: Dmitry Demeshchuk Date: Thu, 5 Sep 2013 21:05:23 -0700 Subject: [PATCH 01/48] Improve network performance for VirtualBox Without those lines, VitrualBox machines are being very slow with all network operations (tested only in OS X Lion, but they are supposed to work everywhere). See https://github.com/mitchellh/vagrant/issues/1807 --- Vagrantfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Vagrantfile b/Vagrantfile index 85af1280a2..548ede086f 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -76,6 +76,8 @@ Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config| config.vm.provider :virtualbox do |vb| config.vm.box = BOX_NAME config.vm.box_url = BOX_URI + vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] end end From 5bd0437eedf8036b9648dd095b22d0772fa47e4d Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Fri, 20 Sep 2013 12:46:24 +0000 Subject: [PATCH 02/48] abord build if mergeConfig returns an error and fix duplicate error message --- api.go | 3 +-- runtime.go | 4 +++- utils.go | 8 ++++++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/api.go b/api.go index f984b1c49f..9bba627743 100644 --- a/api.go +++ b/api.go @@ -892,8 +892,7 @@ func postBuild(srv *Server, version float64, w http.ResponseWriter, r *http.Requ b := NewBuildFile(srv, utils.NewWriteFlusher(w), !suppressOutput, !noCache, rm) id, err := b.Build(context) if err != nil { - fmt.Fprintf(w, "Error build: %s\n", err) - return err + return fmt.Errorf("Error build: %s", err) } if repoName != "" { srv.runtime.repositories.Set(repoName, tag, id, false) diff --git a/runtime.go b/runtime.go index aff1773fdf..cb37a82304 100644 --- a/runtime.go +++ b/runtime.go @@ -282,7 +282,9 @@ func (runtime *Runtime) Create(config *Config) (*Container, error) { } if img.Config != nil { - MergeConfig(config, img.Config) + if err := MergeConfig(config, img.Config); err != nil { + return nil, err + } } if len(config.Entrypoint) != 0 && config.Cmd == nil { diff --git a/utils.go b/utils.go index aed8ffdd76..769f49919a 100644 --- a/utils.go +++ b/utils.go @@ -65,7 +65,7 @@ func CompareConfig(a, b *Config) bool { return true } -func MergeConfig(userConf, imageConf *Config) { +func MergeConfig(userConf, imageConf *Config) error { if userConf.User == "" { userConf.User = imageConf.User } @@ -85,7 +85,10 @@ func MergeConfig(userConf, imageConf *Config) { found := false imageNat, _ := parseNat(imagePortSpec) for _, userPortSpec := range userConf.PortSpecs { - userNat, _ := parseNat(userPortSpec) + userNat, err := parseNat(userPortSpec) + if err != nil { + return err + } if imageNat.Proto == userNat.Proto && imageNat.Backend == userNat.Backend { found = true } @@ -146,6 +149,7 @@ func MergeConfig(userConf, imageConf *Config) { userConf.Volumes[k] = v } } + return nil } func parseLxcConfOpts(opts ListOpts) ([]KeyValuePair, error) { From 1328be7c299417aa8c8740ac4901a978724afa9b Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 3 Oct 2013 14:46:07 +0000 Subject: [PATCH 03/48] Add test --- runtime_test.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/runtime_test.go b/runtime_test.go index f4f5d5af1e..09056aafd1 100644 --- a/runtime_test.go +++ b/runtime_test.go @@ -203,6 +203,29 @@ func TestRuntimeCreate(t *testing.T) { if err == nil { t.Fatal("Builder.Create should throw an error when Cmd is empty") } + + config := &Config{ + Image: GetTestImage(runtime).ID, + Cmd: []string{"/bin/ls"}, + PortSpecs: []string{"80"}, + } + container, err = runtime.Create(config) + + image, err := runtime.Commit(container, "testrepo", "testtag", "", "", config) + if err != nil { + t.Error(err) + } + + _, err = runtime.Create( + &Config{ + Image: image.ID, + PortSpecs: []string{"80000:80"}, + }, + ) + if err == nil { + t.Fatal("Builder.Create should throw an error when PortSpecs is invalid") + } + } func TestDestroy(t *testing.T) { From f84dc1e90858924f9fafe89e81005842a6b4f166 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 3 Oct 2013 22:33:00 +0000 Subject: [PATCH 04/48] add missing error check --- utils.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utils.go b/utils.go index 769f49919a..8d821e87ff 100644 --- a/utils.go +++ b/utils.go @@ -83,7 +83,10 @@ func MergeConfig(userConf, imageConf *Config) error { } else { for _, imagePortSpec := range imageConf.PortSpecs { found := false - imageNat, _ := parseNat(imagePortSpec) + imageNat, err := parseNat(imagePortSpec) + if err != nil { + return err + } for _, userPortSpec := range userConf.PortSpecs { userNat, err := parseNat(userPortSpec) if err != nil { From 0d3c899528f00f222080915e800388f5d2821861 Mon Sep 17 00:00:00 2001 From: Ken Cochrane Date: Fri, 4 Oct 2013 15:12:40 -0400 Subject: [PATCH 05/48] added initial draft of the Docker infrastructure doc --- hack/infrastructure/overview.md | 103 ++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 hack/infrastructure/overview.md diff --git a/hack/infrastructure/overview.md b/hack/infrastructure/overview.md new file mode 100644 index 0000000000..592c9b0b22 --- /dev/null +++ b/hack/infrastructure/overview.md @@ -0,0 +1,103 @@ +# Docker Server Overview +This is an overview of the Docker infrastructure + +## Docker Git Repo +The Docker source code lives on github.com under the dotCloud account. +https://github.com/dotcloud/docker + +## DNS +We are using dyn.com for our DNS server for the docker.io domain. +It is using the dotCloud account. + +### DNS Redirect +We have a DNS redirect in dyn.com that will automatically redirect +docker.io to www.docker.io + +## email +Email is sent via dotCloud account on MailGun.com + +## CDN +We are using a CDN in front of some of the docker.io domains to help improve +proformance. The CDN is Cloudflare, using a Pro account. + +*This is currently disabled due to an issue with slow performance during pull +in some regions of the world.* + +### CDN Domains +- www.docker.io +- test.docker.io +- registry-1.docker.io +- debug.docker.io +- cdn-registry-1.docker.io + +## edge-docker.dotcloud.com +All of the Docker applications that live on dotCloud go through their own +load balancer, and this is where SSL is terminated as well. + +## www.docker.io +This is hosted under the docker account on dotCloud's PaaS. + +### Source Code +The source code for the website lives here: +https://github.com/dotcloud/www.docker.io + +## Docker Registry +The registry is where the image data is store. + +### URL: +- registry-1.docker.io +- cdn-registry-1.docker.io + +There are two urls, one is behind a CDN the other isn't this is because when +you pull, you pull from the CDN url, to help with pull speeds. We don't push +through the CDN as well, because it doesn't help us, so we bypass it. + +### Data Store: +The data store for the registry is using Amazon S3 in a bucket under the docker +aws account. + +### Source Code +The source code for the registry lives here: https://github.com/dotcloud/docker-registry + +### Hosted: +Hosted on the Docker account on dotCloud's PaaS + +## index.docker.io +This is the docker index, it stores all of the meta information about the +docker images, but all data is stored in the registry. + +### Source Code: +Not available + +### Hosted: +Hosted on the Docker account on dotCloud's PaaS + +## blog.docker.io +This is a wordpress based Docker blog. + +### URL: +http://blog.docker.io + +### Source Code: +https://github.com/dotcloud/blog.docker.io + +## docs.docker.io +This is where all of the documentation for docker lives. + +### Hosted: +This website is hosted on ReadTheDocs.org. + +### Updates +These docs get automatically updated when the Docker repo on github has +new commits. It does this via a webhook. + +### Proxy: +This is a simple dotcloud app, with its main and only purpose to forward +http (and https) requests to docker.readthedocs.org. + +https://github.com/dotcloud/docker-docs-dotcloud-proxy + +## get.docker.io +This is the docker repository where we store images + +TODO: need more here. jerome? From 9041d6a47bef475aa58bb47b38f49ac408fb94bf Mon Sep 17 00:00:00 2001 From: Matt Haggard Date: Thu, 10 Oct 2013 10:23:24 -0600 Subject: [PATCH 06/48] Minor updates to postgresql_service.rst I've added the steps that were missing/wrong for me when I went through this just now. --- docs/sources/examples/postgresql_service.rst | 32 ++++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/docs/sources/examples/postgresql_service.rst b/docs/sources/examples/postgresql_service.rst index 2df02b40c5..adbbef7032 100644 --- a/docs/sources/examples/postgresql_service.rst +++ b/docs/sources/examples/postgresql_service.rst @@ -43,8 +43,8 @@ Install ``python-software-properies``. .. code-block:: bash - apt-get install python-software-properties - apt-get install software-properties-common + apt-get -y install python-software-properties + apt-get -y install software-properties-common Add Pitti's PostgreSQL repository. It contains the most recent stable release of PostgreSQL i.e. ``9.2``. @@ -77,7 +77,8 @@ role. Adjust PostgreSQL configuration so that remote connections to the database are possible. Make sure that inside -``/etc/postgresql/9.2/main/pg_hba.conf`` you have following line: +``/etc/postgresql/9.2/main/pg_hba.conf`` you have following line (you will need +to install an editor, e.g. ``apt-get install vim``): .. code-block:: bash @@ -90,9 +91,17 @@ uncomment ``listen_addresses`` so it is as follows: listen_addresses='*' -*Note:* this PostgreSQL setup is for development only purposes. Refer -to PostgreSQL documentation how to fine-tune these settings so that it -is enough secure. +.. note:: + + This PostgreSQL setup is for development only purposes. Refer + to PostgreSQL documentation how to fine-tune these settings so that it + is enough secure. + +Exit. + +.. code-block:: bash + + exit Create an image and assign it a name. ```` is in the Bash prompt; you can also locate it using ``docker ps -a``. @@ -111,7 +120,9 @@ Finally, run PostgreSQL server via ``docker``. -D /var/lib/postgresql/9.2/main \ -c config_file=/etc/postgresql/9.2/main/postgresql.conf') -Connect the PostgreSQL server using ``psql``. +Connect the PostgreSQL server using ``psql`` (You will need postgres installed +on the machine. For ubuntu, use something like +``sudo apt-get install postgresql``). .. code-block:: bash @@ -128,7 +139,7 @@ As before, create roles or databases if needed. docker=# CREATE DATABASE foo OWNER=docker; CREATE DATABASE -Additionally, publish there your newly created image on Docker Index. +Additionally, publish your newly created image on Docker Index. .. code-block:: bash @@ -149,10 +160,11 @@ container starts. .. code-block:: bash - sudo docker commit postgresql -run='{"Cmd": \ + sudo docker commit -run='{"Cmd": \ ["/bin/su", "postgres", "-c", "/usr/lib/postgresql/9.2/bin/postgres -D \ /var/lib/postgresql/9.2/main -c \ - config_file=/etc/postgresql/9.2/main/postgresql.conf"], "PortSpecs": ["5432"]}' + config_file=/etc/postgresql/9.2/main/postgresql.conf"], "PortSpecs": ["5432"]}' \ + /postgresql From now on, just type ``docker run /postgresql`` and PostgreSQL should automatically start. From d91bf33df3d48ec9a1f2d460433ce719ede1a6f7 Mon Sep 17 00:00:00 2001 From: Sven Dowideit Date: Wed, 9 Oct 2013 16:11:02 +1000 Subject: [PATCH 07/48] tell the new developer how they can replace the real docker binary with the one they've been hacking on (#2142) --- docs/sources/contributing/devenvironment.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sources/contributing/devenvironment.rst b/docs/sources/contributing/devenvironment.rst index 8d95b7ca1c..59f16646cd 100644 --- a/docs/sources/contributing/devenvironment.rst +++ b/docs/sources/contributing/devenvironment.rst @@ -124,7 +124,7 @@ You can run an interactive session in the newly built container: -.. note:: The binary is availalbe outside the container in the directory ``./bundles/-dev/binary/``. +.. note:: The binary is available outside the container in the directory ``./bundles/-dev/binary/``. You can swap your host docker executable with this binary for live testing - for example, on ubuntu: ``sudo service docker stop ; sudo cp $(which docker) $(which docker)_ ; sudo cp ./bundles/-dev/binary/docker--dev $(which docker);sudo service docker start``. **Need More Help?** From 1dcdc3deb7cc41fe3c84c579df19c9578098a172 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Sat, 7 Sep 2013 10:30:29 -0700 Subject: [PATCH 08/48] testing, issue #1766: Add nightly release to docker-ci --- hack/infrastructure/docker-ci.rst | 58 ++++++++++++++- testing/Vagrantfile | 36 ++++++---- testing/buildbot/master.cfg | 12 +++- testing/nightlyrelease/Dockerfile | 47 ++++++++++++ testing/nightlyrelease/dockerbuild | 71 +++++++++++++++++++ .../nightlyrelease/release_credentials.json | 1 + 6 files changed, 209 insertions(+), 16 deletions(-) create mode 100644 testing/nightlyrelease/Dockerfile create mode 100644 testing/nightlyrelease/dockerbuild create mode 100644 testing/nightlyrelease/release_credentials.json diff --git a/hack/infrastructure/docker-ci.rst b/hack/infrastructure/docker-ci.rst index abb8492cf0..a133a582b5 100644 --- a/hack/infrastructure/docker-ci.rst +++ b/hack/infrastructure/docker-ci.rst @@ -1,5 +1,38 @@ -docker-ci github pull request -============================= +docker-ci +========= + +docker-ci is our buildbot continuous integration server, +building and testing docker, hosted on EC2 and reachable at +http://docker-ci.dotcloud.com + + +Deployment +========== + +# Load AWS credentials +export AWS_ACCESS_KEY_ID='' +export AWS_SECRET_ACCESS_KEY='' +export AWS_KEYPAIR_NAME='' +export AWS_SSH_PRIVKEY='' + +# Load buildbot credentials and config +export BUILDBOT_PWD='' +export IRC_PWD='' +export IRC_CHANNEL='docker-dev' +export SMTP_USER='' +export SMTP_PWD='' +export EMAIL_RCP='' + +# Load registry test credentials +export REGISTRY_USER='' +export REGISTRY_PWD='' + +cd docker/testing +vagrant up --provider=aws + + +github pull request +=================== The entire docker pull request test workflow is event driven by github. Its usage is fully automatic and the results are logged in docker-ci.dotcloud.com @@ -13,3 +46,24 @@ buildbot (0.8.7p1) was patched using ./testing/buildbot/github.py, so it can understand the PR data github sends to it. Originally PR #1603 (ee64e099e0) implemented this capability. Also we added a new scheduler to exclusively filter PRs. and the 'pullrequest' builder to rebase the PR on top of master and test it. + + +nighthly release +================ + +The nightly release process is done by buildbot, running a DinD container that downloads +the docker repository and builds the release container. The resulting +docker binary is then tested, and if everything is fine the release is done. + +Building the release DinD Container +----------------------------------- + +# Log into docker-ci +ssh ubuntu@docker-ci.dotcloud.com +cd /data/docker/testing/nightlyrelease +# Add release_credentials.json as specified in ./Dockerfile +cat > release_credentials.json << EOF +EOF +sudo docker build -t dockerbuilder . +# Now that the container is built release_credentials.json is not needed anymore +git checkout release_credentials.json diff --git a/testing/Vagrantfile b/testing/Vagrantfile index 1d15709a36..386e74b4d4 100644 --- a/testing/Vagrantfile +++ b/testing/Vagrantfile @@ -2,8 +2,8 @@ # vi: set ft=ruby : BOX_NAME = "docker-ci" -BOX_URI = "http://cloud-images.ubuntu.com/vagrant/raring/current/raring-server-cloudimg-amd64-vagrant-disk1.box" -AWS_AMI = "ami-10314d79" +BOX_URI = "http://files.vagrantup.com/precise64.box" +AWS_AMI = "ami-d0f89fb9" DOCKER_PATH = "/data/docker" CFG_PATH = "#{DOCKER_PATH}/testing/buildbot" on_vbox = File.file?("#{File.dirname(__FILE__)}/.vagrant/machines/default/virtualbox/id") | \ @@ -23,16 +23,13 @@ Vagrant::Config.run do |config| if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? # Add memory limitation capabilities pkg_cmd = 'sed -Ei \'s/^(GRUB_CMDLINE_LINUX_DEFAULT)=.+/\\1="cgroup_enable=memory swapaccount=1 quiet"/\' /etc/default/grub; ' - # Adjust kernel - pkg_cmd << "apt-get update -qq; " - if on_vbox - pkg_cmd << "apt-get install -q -y linux-image-extra-`uname -r`; " - else - pkg_cmd << "apt-get install -q -y linux-image-generic; " - end + # Install new kernel + pkg_cmd << "apt-get update -qq; apt-get install -q -y linux-image-generic-lts-raring; " # Deploy buildbot CI - pkg_cmd << "apt-get install -q -y python-dev python-pip supervisor; " \ + pkg_cmd << "echo 'America/Los_Angeles' > /etc/timezone; " \ + "dpkg-reconfigure --frontend noninteractive tzdata; " \ + "apt-get install -q -y python-dev python-pip supervisor; " \ "pip install -r #{CFG_PATH}/requirements.txt; " \ "chown #{USER}.#{USER} /data; cd /data; " \ "#{CFG_PATH}/setup.sh #{USER} #{CFG_PATH} #{ENV['BUILDBOT_PWD']} " \ @@ -40,12 +37,27 @@ Vagrant::Config.run do |config| "#{ENV['SMTP_PWD']} #{ENV['EMAIL_RCP']}; " \ "#{CFG_PATH}/setup_credentials.sh #{USER} " \ "#{ENV['REGISTRY_USER']} #{ENV['REGISTRY_PWD']}; " - # Install docker and testing dependencies + # Install docker + pkg_cmd << "mkdir /mnt/docker; ln -s /mnt/docker /var/lib/docker; " \ + "wget -q -O - https://get.docker.io/gpg | apt-key add -; " \ + "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list; " \ + "apt-get update -qq; apt-get install -yq lxc-docker; " + # Enable docker host to run docker daemon in containers (dind) + pkg_cmd << "/sbin/stop docker; " + pkg_cmd << "DIND_CMD=\" umount /sys/fs/cgroup/*; umount /sys/fs/cgroup\\n" \ + " mount -t tmpfs none /sys/fs/cgroup; cd /sys/fs/cgroup\\n" \ + " for C in \x5C\x24(awk '{print \x5C\x241}' < /proc/cgroups | grep -v subsys | grep -v memory);\\n" \ + " do mkdir \x5C\x24C; mount -t cgroup none -o \x5C\x24C \x5C\x24C; done;\\n" \ + " /usr/bin/docker -d\"; " + pkg_cmd << "sed -Ei 's~start on filesystem.+~start on filesystem and started lxc-net~' /etc/init/docker.conf; " + pkg_cmd << "sed -Ei 's~ /usr/bin/docker -d~'\"$DIND_CMD\"'~' /etc/init/docker.conf; " + # Install testing dependencies pkg_cmd << "curl -s https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz | " \ " tar -v -C /usr/local -xz; ln -s /usr/local/go/bin/go /usr/bin/go; " \ "curl -s https://phantomjs.googlecode.com/files/phantomjs-1.9.1-linux-x86_64.tar.bz2 | " \ " tar jx -C /usr/bin --strip-components=2 phantomjs-1.9.1-linux-x86_64/bin/phantomjs; " \ - "DEBIAN_FRONTEND=noninteractive apt-get install -q -y lxc git mercurial aufs-tools make libfontconfig; " \ + "DEBIAN_FRONTEND=noninteractive apt-get install -qy lxc git mercurial aufs-tools " \ + " make libfontconfig libevent-dev; " \ "export GOPATH=/data/docker-dependencies; go get -d github.com/dotcloud/docker; " \ "rm -rf ${GOPATH}/src/github.com/dotcloud/docker; " # Activate new kernel options diff --git a/testing/buildbot/master.cfg b/testing/buildbot/master.cfg index 7962fe9e9d..4ce125f6d0 100644 --- a/testing/buildbot/master.cfg +++ b/testing/buildbot/master.cfg @@ -45,14 +45,14 @@ c['slavePortnum'] = PORT_MASTER # Schedulers c['schedulers'] = [ForceScheduler(name='trigger', builderNames=[BUILDER_NAME, - 'index','registry','coverage'])] + 'index','registry','coverage','nightlyrelease'])] c['schedulers'] += [SingleBranchScheduler(name="all", change_filter=filter.ChangeFilter(branch='master'), treeStableTimer=None, builderNames=[BUILDER_NAME])] c['schedulers'] += [SingleBranchScheduler(name='pullrequest', change_filter=filter.ChangeFilter(category='github_pullrequest'), treeStableTimer=None, builderNames=['pullrequest'])] -c['schedulers'] += [Nightly(name='daily', branch=None, builderNames=['coverage'], +c['schedulers'] += [Nightly(name='daily', branch=None, builderNames=['coverage','nightlyrelease'], hour=0, minute=30)] c['schedulers'] += [Nightly(name='every4hrs', branch=None, builderNames=['registry','index'], hour=range(0,24,4), minute=15)] @@ -109,6 +109,14 @@ factory.addStep(ShellCommand(description='index', logEnviron=False, c['builders'] += [BuilderConfig(name='index',slavenames=['buildworker'], factory=factory)] +# Docker nightly release +nightlyrelease_cmd = ('docker run -i -t -privileged -lxc-conf="lxc.aa_profile = unconfined"' + ' -e AWS_S3_BUCKET="test.docker.io" dockerbuilder') +factory = BuildFactory() +factory.addStep(ShellCommand(description='NightlyRelease',logEnviron=False,usePTY=True, + command=nightlyrelease_cmd)) +c['builders'] += [BuilderConfig(name='nightlyrelease',slavenames=['buildworker'], + factory=factory)] # Status authz_cfg = authz.Authz(auth=auth.BasicAuth([(TEST_USER, TEST_PWD)]), diff --git a/testing/nightlyrelease/Dockerfile b/testing/nightlyrelease/Dockerfile new file mode 100644 index 0000000000..1cf95aacdc --- /dev/null +++ b/testing/nightlyrelease/Dockerfile @@ -0,0 +1,47 @@ +# VERSION: 1.0 +# DOCKER-VERSION 0.6.1 +# AUTHOR: Daniel Mizyrycki +# DESCRIPTION: Build docker nightly release using Docker in Docker. +# REFERENCES: This code reuses the excellent implementation of docker in docker +# made by Jerome Petazzoni. https://github.com/jpetazzo/dind +# COMMENTS: +# release_credentials.json is a base64 json encoded file containing: +# { "AWS_ACCESS_KEY": "Test_docker_AWS_S3_bucket_id", +# "AWS_SECRET_KEY='Test_docker_AWS_S3_bucket_key' +# "GPG_PASSPHRASE='Test_docker_GPG_passphrase_signature' +# "INDEX_AUTH='Encripted_index_authentication' } +# When releasing: Docker in Docker requires cgroups mounted the same way in +# the host and containers: +# stop docker +# umount /sys/fs/cgroup/*; umount /sys/fs/cgroup; mount -t tmpfs none /sys/fs/cgroup +# cd /sys/fs/cgroup; for C in $(awk '{print $1}' < /proc/cgroups | grep -v subsys | grep -v memory) ; do mkdir $C ; mount -t cgroup none -o $C $C ; done +# docker -d & +# TO_BUILD: docker build -t dockerbuilder . +# TO_RELEASE: docker run -i -t -privileged -lxc-conf="lxc.aa_profile = unconfined" -e AWS_S3_BUCKET="test.docker.io" dockerbuilder + +from ubuntu:12.04 +maintainer Daniel Mizyrycki + +# Add docker dependencies +run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list +run apt-get update; apt-get install -y -q iptables ca-certificates bzip2 python lxc curl git mercurial +run curl -s https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz | tar -v -C /usr/local -xz +run ln -s /usr/local/go/bin/go /usr/bin + +# Add production docker binary +run curl http://get.docker.io/builds/Linux/x86_64/docker-latest >/usr/bin/docker; chmod +x /usr/bin/docker + +# Add proto docker builder +add ./dockerbuild /usr/bin/dockerbuild +run chmod +x /usr/bin/dockerbuild + +# Add release credentials +add ./release_credentials.json /root/release_credentials.json + +# Make /tmp and /var/lib/docker inside the container addressable by other containers. +# This is done to ensure /tmp and /var/lib/docker has AUFS support needed by the inner docker server +volume /tmp +volume /var/lib/docker + +# Launch build process in a container +cmd dockerbuild diff --git a/testing/nightlyrelease/dockerbuild b/testing/nightlyrelease/dockerbuild new file mode 100644 index 0000000000..683008a607 --- /dev/null +++ b/testing/nightlyrelease/dockerbuild @@ -0,0 +1,71 @@ +#!/bin/bash + +# Variables AWS_ACCESS_KEY, AWS_SECRET_KEY, PG_PASSPHRASE and INDEX_AUTH +# are decoded from /root/release_credentials.json and passed to the environment +# Variable AWS_S3_BUCKET is passed to the environment from docker run -e + +# Enable debugging +set -x + +# Prepare container environment to run docker in docker +# Mount cgroups +mount -t tmpfs none /tmp; mount -t tmpfs none /sys/fs/cgroup; cd /sys/fs/cgroup +for C in $(awk "{print \$1}" < /proc/cgroups | grep -v subsys | grep -v memory) ; do mkdir $C ; mount -t cgroup none -o $C $C ; done +pushd /proc/self/fd >/dev/null; for FD in *; do case "$FD" in [012]) ;; *) eval exec "$FD>&-" ;; esac done; popd >/dev/null + +# Launch docker daemon inside the container +docker -d & + +# fetch docker master branch +export GOPATH=/go +rm -rf $GOPATH; mkdir -p $GOPATH +go get -d github.com/dotcloud/docker +cd /go/src/github.com/dotcloud/docker + +# Add an uncommitted change to generate a timestamped release +date > timestamp + +# Build the docker package and extract docker binary +docker build -t releasedocker . +docker run releasedocker sh -c 'cat /go/src/github.com/dotcloud/docker/bundles/*/binary/docker*' >/docker +chmod +x /docker + +# Swap docker production daemon with new docker binary for testing +kill $(pgrep '^docker$') +sleep 15 +mv /docker /usr/bin +docker -d & +sleep 15 + +# Turn debug off to load credentials in the environment and +# to authenticate to the index +set +x +eval $(cat /root/release_credentials.json | python -c ' +import sys,json,base64; +d=json.loads(base64.b64decode(sys.stdin.read())); +exec("""for k in d: print "export {0}=\\"{1}\\"".format(k,d[k])""")') +echo '{"https://index.docker.io/v1/":{"auth":"'$INDEX_AUTH'","email":"engineering@dotcloud.com"}}' > /.dockercfg +set -x + +# Test docker nightly +# Generate unique image name +export DIMAGE=testimage`date +'%Y%m%d%H%M%S'` + +# Simple docker version test +docker version || exit 1 + +# Containerized hello world +docker run -cidfile=hello.cid busybox echo 'Hello world' | grep -q 'Hello world' || exit 1 + +# Create an image based on the busybox container and test pushing it to the index +docker commit `cat hello.cid` test/$DIMAGE +docker images | grep -q test/$DIMAGE || exit 1 +docker push test/$DIMAGE + +# Verify the image was properly pushed to the index +docker search $DIMAGE | grep -q $DIMAGE || exit 1 + +# Push docker nightly +echo docker run -i -t -e AWS_S3_BUCKET="$AWS_S3_BUCKET" -e AWS_ACCESS_KEY="XXXXX" -e AWS_SECRET_KEY="XXXXX" -e GPG_PASSPHRASE="XXXXX" releasedocker +set +x +docker run -i -t -e AWS_S3_BUCKET="$AWS_S3_BUCKET" -e AWS_ACCESS_KEY="$AWS_ACCESS_KEY" -e AWS_SECRET_KEY="$AWS_SECRET_KEY" -e GPG_PASSPHRASE="$GPG_PASSPHRASE" releasedocker diff --git a/testing/nightlyrelease/release_credentials.json b/testing/nightlyrelease/release_credentials.json new file mode 100644 index 0000000000..ed6d53ecd1 --- /dev/null +++ b/testing/nightlyrelease/release_credentials.json @@ -0,0 +1 @@ +eyAiQVdTX0FDQ0VTU19LRVkiOiAiIiwKICAiQVdTX1NFQ1JFVF9LRVkiOiAiIiwKICAiR1BHX1BBU1NQSFJBU0UiOiAiIiwKICAiSU5ERVhfQVVUSCI6ICIiIH0= From fac190959ffbacc95e34fc8615ff82879f8ffd18 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Thu, 19 Sep 2013 16:09:12 -0700 Subject: [PATCH 09/48] testing, issue #1766: Upgrade tooling for Docker nightly release --- hack/infrastructure/docker-ci.rst | 17 +------- testing/Vagrantfile | 28 ++++++------- testing/buildbot/dockerci_local.sh | 15 +++++++ testing/buildbot/master.cfg | 10 ++--- testing/buildbot/setup.sh | 1 - testing/buildbot/setup_credentials.sh | 2 +- testing/nightlyrelease/Dockerfile | 23 ++++------- testing/nightlyrelease/dockerbuild | 57 ++++++++++++++------------- 8 files changed, 73 insertions(+), 80 deletions(-) create mode 100644 testing/buildbot/dockerci_local.sh diff --git a/hack/infrastructure/docker-ci.rst b/hack/infrastructure/docker-ci.rst index a133a582b5..0be530d302 100644 --- a/hack/infrastructure/docker-ci.rst +++ b/hack/infrastructure/docker-ci.rst @@ -52,18 +52,5 @@ nighthly release ================ The nightly release process is done by buildbot, running a DinD container that downloads -the docker repository and builds the release container. The resulting -docker binary is then tested, and if everything is fine the release is done. - -Building the release DinD Container ------------------------------------ - -# Log into docker-ci -ssh ubuntu@docker-ci.dotcloud.com -cd /data/docker/testing/nightlyrelease -# Add release_credentials.json as specified in ./Dockerfile -cat > release_credentials.json << EOF -EOF -sudo docker build -t dockerbuilder . -# Now that the container is built release_credentials.json is not needed anymore -git checkout release_credentials.json +the docker repository and builds the release container. The resulting docker +binary is then tested, and if everything is fine, the release is done. diff --git a/testing/Vagrantfile b/testing/Vagrantfile index 386e74b4d4..f153c824fd 100644 --- a/testing/Vagrantfile +++ b/testing/Vagrantfile @@ -4,7 +4,7 @@ BOX_NAME = "docker-ci" BOX_URI = "http://files.vagrantup.com/precise64.box" AWS_AMI = "ami-d0f89fb9" -DOCKER_PATH = "/data/docker" +DOCKER_PATH = "/go/src/github.com/dotcloud/docker" CFG_PATH = "#{DOCKER_PATH}/testing/buildbot" on_vbox = File.file?("#{File.dirname(__FILE__)}/.vagrant/machines/default/virtualbox/id") | \ Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? & \ @@ -18,9 +18,9 @@ Vagrant::Config.run do |config| config.vm.forward_port 8010, 8010 config.vm.share_folder "v-data", DOCKER_PATH, "#{File.dirname(__FILE__)}/.." - # Deploy buildbot and its dependencies if it was not done if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? + # Add memory limitation capabilities pkg_cmd = 'sed -Ei \'s/^(GRUB_CMDLINE_LINUX_DEFAULT)=.+/\\1="cgroup_enable=memory swapaccount=1 quiet"/\' /etc/default/grub; ' # Install new kernel @@ -31,36 +31,33 @@ Vagrant::Config.run do |config| "dpkg-reconfigure --frontend noninteractive tzdata; " \ "apt-get install -q -y python-dev python-pip supervisor; " \ "pip install -r #{CFG_PATH}/requirements.txt; " \ - "chown #{USER}.#{USER} /data; cd /data; " \ + "mkdir /data; chown #{USER}.#{USER} /data; cd /data; " \ "#{CFG_PATH}/setup.sh #{USER} #{CFG_PATH} #{ENV['BUILDBOT_PWD']} " \ "#{ENV['IRC_PWD']} #{ENV['IRC_CHANNEL']} #{ENV['SMTP_USER']} " \ "#{ENV['SMTP_PWD']} #{ENV['EMAIL_RCP']}; " \ "#{CFG_PATH}/setup_credentials.sh #{USER} " \ "#{ENV['REGISTRY_USER']} #{ENV['REGISTRY_PWD']}; " + # Install docker pkg_cmd << "mkdir /mnt/docker; ln -s /mnt/docker /var/lib/docker; " \ "wget -q -O - https://get.docker.io/gpg | apt-key add -; " \ "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list; " \ "apt-get update -qq; apt-get install -yq lxc-docker; " - # Enable docker host to run docker daemon in containers (dind) - pkg_cmd << "/sbin/stop docker; " - pkg_cmd << "DIND_CMD=\" umount /sys/fs/cgroup/*; umount /sys/fs/cgroup\\n" \ - " mount -t tmpfs none /sys/fs/cgroup; cd /sys/fs/cgroup\\n" \ - " for C in \x5C\x24(awk '{print \x5C\x241}' < /proc/cgroups | grep -v subsys | grep -v memory);\\n" \ - " do mkdir \x5C\x24C; mount -t cgroup none -o \x5C\x24C \x5C\x24C; done;\\n" \ - " /usr/bin/docker -d\"; " - pkg_cmd << "sed -Ei 's~start on filesystem.+~start on filesystem and started lxc-net~' /etc/init/docker.conf; " - pkg_cmd << "sed -Ei 's~ /usr/bin/docker -d~'\"$DIND_CMD\"'~' /etc/init/docker.conf; " + # Install testing dependencies - pkg_cmd << "curl -s https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz | " \ - " tar -v -C /usr/local -xz; ln -s /usr/local/go/bin/go /usr/bin/go; " \ + pkg_cmd << "wget -O go.tgz http://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz; " \ + " tar -C /usr/local -vxzf go.tgz; ln -s /usr/local/go/bin/go /usr/bin/go; " \ "curl -s https://phantomjs.googlecode.com/files/phantomjs-1.9.1-linux-x86_64.tar.bz2 | " \ " tar jx -C /usr/bin --strip-components=2 phantomjs-1.9.1-linux-x86_64/bin/phantomjs; " \ "DEBIAN_FRONTEND=noninteractive apt-get install -qy lxc git mercurial aufs-tools " \ " make libfontconfig libevent-dev; " \ "export GOPATH=/data/docker-dependencies; go get -d github.com/dotcloud/docker; " \ "rm -rf ${GOPATH}/src/github.com/dotcloud/docker; " - # Activate new kernel options + + # After reboot, build containers and prepare docker to run on dind + pkg_cmd << "cp #{DOCKER_PATH}/testing/buildbot/dockerci_local.sh /etc/rc.local; " \ + + # Activate new kernel pkg_cmd << "shutdown -r +1; " config.vm.provision :shell, :inline => pkg_cmd end @@ -68,6 +65,7 @@ end # Providers were added on Vagrant >= 1.1.0 Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config| + config.vm.box = "dummy" config.vm.provider :aws do |aws, override| aws.tags = { 'Name' => 'docker-ci' } aws.access_key_id = ENV["AWS_ACCESS_KEY_ID"] diff --git a/testing/buildbot/dockerci_local.sh b/testing/buildbot/dockerci_local.sh new file mode 100644 index 0000000000..8f70a2c11c --- /dev/null +++ b/testing/buildbot/dockerci_local.sh @@ -0,0 +1,15 @@ +#!/bin/sh -e +# This is a one time script to prepare docker-ci + +# Build docker nightly release container +cd /go/src/github.com/dotcloud/docker/testing/nightlyrelease; docker build -t dockerbuilder . + +# Relaunch docker for dind to work (disabling apparmor) +/sbin/stop docker +DIND_CMD=" /etc/init.d/apparmor stop; /etc/init.d/apparmor teardown; /usr/bin/docker -dns=8.8.8.8 -d" +sed -Ei "s~ /usr/bin/docker -d~$DIND_CMD~" /etc/init/docker.conf +/sbin/start docker + +# Self removing +echo -e '#!/bin/sh -e\nexit 0\n' > /etc/rc.local +exit 0 diff --git a/testing/buildbot/master.cfg b/testing/buildbot/master.cfg index 4ce125f6d0..3e3ce83528 100644 --- a/testing/buildbot/master.cfg +++ b/testing/buildbot/master.cfg @@ -20,7 +20,7 @@ TEST_PWD = 'docker' # Credential to authenticate build triggers BUILDER_NAME = 'docker' GITHUB_DOCKER = 'github.com/dotcloud/docker' BUILDBOT_PATH = '/data/buildbot' -DOCKER_PATH = '/data/docker' +DOCKER_PATH = '/go/src/github.com/dotcloud/docker' BUILDER_PATH = '/data/buildbot/slave/{0}/build'.format(BUILDER_NAME) PULL_REQUEST_PATH = '/data/buildbot/slave/pullrequest/build' @@ -52,8 +52,8 @@ c['schedulers'] += [SingleBranchScheduler(name="all", c['schedulers'] += [SingleBranchScheduler(name='pullrequest', change_filter=filter.ChangeFilter(category='github_pullrequest'), treeStableTimer=None, builderNames=['pullrequest'])] -c['schedulers'] += [Nightly(name='daily', branch=None, builderNames=['coverage','nightlyrelease'], - hour=0, minute=30)] +c['schedulers'] += [Nightly(name='daily', branch=None, builderNames=['nightlyrelease'], + hour=7, minute=00)] c['schedulers'] += [Nightly(name='every4hrs', branch=None, builderNames=['registry','index'], hour=range(0,24,4), minute=15)] @@ -110,8 +110,8 @@ c['builders'] += [BuilderConfig(name='index',slavenames=['buildworker'], factory=factory)] # Docker nightly release -nightlyrelease_cmd = ('docker run -i -t -privileged -lxc-conf="lxc.aa_profile = unconfined"' - ' -e AWS_S3_BUCKET="test.docker.io" dockerbuilder') +nightlyrelease_cmd = ('docker run -i -t -privileged -lxc-conf=lxc.aa_profile=unconfined' + ' -e AWS_S3_BUCKET=test.docker.io dockerbuilder') factory = BuildFactory() factory.addStep(ShellCommand(description='NightlyRelease',logEnviron=False,usePTY=True, command=nightlyrelease_cmd)) diff --git a/testing/buildbot/setup.sh b/testing/buildbot/setup.sh index 99e4f7f104..7410fe545d 100755 --- a/testing/buildbot/setup.sh +++ b/testing/buildbot/setup.sh @@ -13,7 +13,6 @@ SMTP_USER=$6 SMTP_PWD=$7 EMAIL_RCP=$8 BUILDBOT_PATH="/data/buildbot" -DOCKER_PATH="/data/docker" SLAVE_NAME="buildworker" SLAVE_SOCKET="localhost:9989" export PATH="/bin:sbin:/usr/bin:/usr/sbin:/usr/local/bin" diff --git a/testing/buildbot/setup_credentials.sh b/testing/buildbot/setup_credentials.sh index f093815d60..76201bdb65 100755 --- a/testing/buildbot/setup_credentials.sh +++ b/testing/buildbot/setup_credentials.sh @@ -8,7 +8,7 @@ REGISTRY_USER=$2 REGISTRY_PWD=$3 BUILDBOT_PATH="/data/buildbot" -DOCKER_PATH="/data/docker" +DOCKER_PATH="/go/src/github.com/dotcloud/docker" function run { su $USER -c "$1"; } diff --git a/testing/nightlyrelease/Dockerfile b/testing/nightlyrelease/Dockerfile index 1cf95aacdc..2ff43976c3 100644 --- a/testing/nightlyrelease/Dockerfile +++ b/testing/nightlyrelease/Dockerfile @@ -1,5 +1,5 @@ -# VERSION: 1.0 -# DOCKER-VERSION 0.6.1 +# VERSION: 1.1 +# DOCKER-VERSION 0.6.2 # AUTHOR: Daniel Mizyrycki # DESCRIPTION: Build docker nightly release using Docker in Docker. # REFERENCES: This code reuses the excellent implementation of docker in docker @@ -10,26 +10,18 @@ # "AWS_SECRET_KEY='Test_docker_AWS_S3_bucket_key' # "GPG_PASSPHRASE='Test_docker_GPG_passphrase_signature' # "INDEX_AUTH='Encripted_index_authentication' } -# When releasing: Docker in Docker requires cgroups mounted the same way in -# the host and containers: -# stop docker -# umount /sys/fs/cgroup/*; umount /sys/fs/cgroup; mount -t tmpfs none /sys/fs/cgroup -# cd /sys/fs/cgroup; for C in $(awk '{print $1}' < /proc/cgroups | grep -v subsys | grep -v memory) ; do mkdir $C ; mount -t cgroup none -o $C $C ; done -# docker -d & # TO_BUILD: docker build -t dockerbuilder . # TO_RELEASE: docker run -i -t -privileged -lxc-conf="lxc.aa_profile = unconfined" -e AWS_S3_BUCKET="test.docker.io" dockerbuilder from ubuntu:12.04 maintainer Daniel Mizyrycki -# Add docker dependencies +# Add docker dependencies and downloading packages run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list -run apt-get update; apt-get install -y -q iptables ca-certificates bzip2 python lxc curl git mercurial -run curl -s https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz | tar -v -C /usr/local -xz -run ln -s /usr/local/go/bin/go /usr/bin +run apt-get update; apt-get install -y -q lxc bzip2 iptables ca-certificates git wget python2.7 # Add production docker binary -run curl http://get.docker.io/builds/Linux/x86_64/docker-latest >/usr/bin/docker; chmod +x /usr/bin/docker +run wget -O /usr/bin/docker http://get.docker.io/builds/Linux/x86_64/docker-latest; chmod +x /usr/bin/docker # Add proto docker builder add ./dockerbuild /usr/bin/dockerbuild @@ -38,9 +30,8 @@ run chmod +x /usr/bin/dockerbuild # Add release credentials add ./release_credentials.json /root/release_credentials.json -# Make /tmp and /var/lib/docker inside the container addressable by other containers. -# This is done to ensure /tmp and /var/lib/docker has AUFS support needed by the inner docker server -volume /tmp +# Make /var/lib/docker inside the container addressable by other containers. +# This is done to ensure /var/lib/docker has AUFS support needed by the inner docker server volume /var/lib/docker # Launch build process in a container diff --git a/testing/nightlyrelease/dockerbuild b/testing/nightlyrelease/dockerbuild index 683008a607..797d25b7a4 100644 --- a/testing/nightlyrelease/dockerbuild +++ b/testing/nightlyrelease/dockerbuild @@ -1,41 +1,34 @@ #!/bin/bash # Variables AWS_ACCESS_KEY, AWS_SECRET_KEY, PG_PASSPHRASE and INDEX_AUTH -# are decoded from /root/release_credentials.json and passed to the environment +# are decoded from /root/release_credentials.json # Variable AWS_S3_BUCKET is passed to the environment from docker run -e # Enable debugging set -x -# Prepare container environment to run docker in docker -# Mount cgroups -mount -t tmpfs none /tmp; mount -t tmpfs none /sys/fs/cgroup; cd /sys/fs/cgroup -for C in $(awk "{print \$1}" < /proc/cgroups | grep -v subsys | grep -v memory) ; do mkdir $C ; mount -t cgroup none -o $C $C ; done -pushd /proc/self/fd >/dev/null; for FD in *; do case "$FD" in [012]) ;; *) eval exec "$FD>&-" ;; esac done; popd >/dev/null - -# Launch docker daemon inside the container -docker -d & - -# fetch docker master branch -export GOPATH=/go -rm -rf $GOPATH; mkdir -p $GOPATH -go get -d github.com/dotcloud/docker +# Fetch docker master branch +git clone http://github.com/dotcloud/docker /go/src/github.com/dotcloud/docker cd /go/src/github.com/dotcloud/docker +# Launch docker daemon using dind inside the container +./hack/dind /usr/bin/docker -dns=8.8.8.8 -d & +sleep 5 + # Add an uncommitted change to generate a timestamped release date > timestamp -# Build the docker package and extract docker binary -docker build -t releasedocker . -docker run releasedocker sh -c 'cat /go/src/github.com/dotcloud/docker/bundles/*/binary/docker*' >/docker -chmod +x /docker +# Build the docker package using /Dockerfile +docker build -t docker . -# Swap docker production daemon with new docker binary for testing -kill $(pgrep '^docker$') -sleep 15 -mv /docker /usr/bin -docker -d & -sleep 15 +# Run Docker unittests +docker run -privileged docker go test -v || exit 1 + +# Create Docker binary and Ubuntu package +docker run -privileged docker hack/make.sh binary ubuntu + +# Freeze the container to upload the release +docker commit -run '{"Env": ["PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"], "WorkingDir": "/go/src/github.com/dotcloud/docker"}' $(docker ps -l -q) release # Turn debug off to load credentials in the environment and # to authenticate to the index @@ -47,7 +40,17 @@ exec("""for k in d: print "export {0}=\\"{1}\\"".format(k,d[k])""")') echo '{"https://index.docker.io/v1/":{"auth":"'$INDEX_AUTH'","email":"engineering@dotcloud.com"}}' > /.dockercfg set -x -# Test docker nightly +# Extract docker binary +docker cp $(docker ps -l -q):/go/src/github.com/dotcloud/docker/bundles /tmp + +# Swap docker production daemon with new docker binary for testing +kill $(pgrep '^docker$') +sleep 15 +cp /tmp/bundles/*/binary/* /usr/bin/docker +./hack/dind /usr/bin/docker -dns=8.8.8.8 -d & +sleep 15 + +# Run Docker functional tests # Generate unique image name export DIMAGE=testimage`date +'%Y%m%d%H%M%S'` @@ -66,6 +69,6 @@ docker push test/$DIMAGE docker search $DIMAGE | grep -q $DIMAGE || exit 1 # Push docker nightly -echo docker run -i -t -e AWS_S3_BUCKET="$AWS_S3_BUCKET" -e AWS_ACCESS_KEY="XXXXX" -e AWS_SECRET_KEY="XXXXX" -e GPG_PASSPHRASE="XXXXX" releasedocker +echo docker run -i -t -privileged -e AWS_S3_BUCKET=$AWS_S3_BUCKET -e AWS_ACCESS_KEY=XXXXX -e AWS_SECRET_KEY=XXXXX -e GPG_PASSPHRASE=XXXXX release hack/release.sh set +x -docker run -i -t -e AWS_S3_BUCKET="$AWS_S3_BUCKET" -e AWS_ACCESS_KEY="$AWS_ACCESS_KEY" -e AWS_SECRET_KEY="$AWS_SECRET_KEY" -e GPG_PASSPHRASE="$GPG_PASSPHRASE" releasedocker +docker run -i -t -privileged -e AWS_S3_BUCKET=$AWS_S3_BUCKET -e AWS_ACCESS_KEY=$AWS_ACCESS_KEY -e AWS_SECRET_KEY=$AWS_SECRET_KEY -e GPG_PASSPHRASE=$GPG_PASSPHRASE release hack/release.sh From 6e3068700fb32299cf733acd74785e29609b1974 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Sat, 21 Sep 2013 12:14:40 -0700 Subject: [PATCH 10/48] testing infrastructure, issue #1766: Temporarily install docker with proper apparmor handling --- testing/Vagrantfile | 3 +++ testing/buildbot/dockerci_local.sh | 6 ------ testing/nightlyrelease/Dockerfile | 5 ++++- testing/nightlyrelease/dockerbuild | 6 +++++- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/testing/Vagrantfile b/testing/Vagrantfile index f153c824fd..e3580029e8 100644 --- a/testing/Vagrantfile +++ b/testing/Vagrantfile @@ -44,6 +44,9 @@ Vagrant::Config.run do |config| "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list; " \ "apt-get update -qq; apt-get install -yq lxc-docker; " + #### FIXME. Temporarily install docker with proper apparmor handling + pkg_cmd << "stop docker; wget -q -O /usr/bin/docker http://test.docker.io/test/docker; start docker; " \ + # Install testing dependencies pkg_cmd << "wget -O go.tgz http://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz; " \ " tar -C /usr/local -vxzf go.tgz; ln -s /usr/local/go/bin/go /usr/bin/go; " \ diff --git a/testing/buildbot/dockerci_local.sh b/testing/buildbot/dockerci_local.sh index 8f70a2c11c..562026d7af 100644 --- a/testing/buildbot/dockerci_local.sh +++ b/testing/buildbot/dockerci_local.sh @@ -4,12 +4,6 @@ # Build docker nightly release container cd /go/src/github.com/dotcloud/docker/testing/nightlyrelease; docker build -t dockerbuilder . -# Relaunch docker for dind to work (disabling apparmor) -/sbin/stop docker -DIND_CMD=" /etc/init.d/apparmor stop; /etc/init.d/apparmor teardown; /usr/bin/docker -dns=8.8.8.8 -d" -sed -Ei "s~ /usr/bin/docker -d~$DIND_CMD~" /etc/init/docker.conf -/sbin/start docker - # Self removing echo -e '#!/bin/sh -e\nexit 0\n' > /etc/rc.local exit 0 diff --git a/testing/nightlyrelease/Dockerfile b/testing/nightlyrelease/Dockerfile index 2ff43976c3..ca78c7386f 100644 --- a/testing/nightlyrelease/Dockerfile +++ b/testing/nightlyrelease/Dockerfile @@ -21,7 +21,10 @@ run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt run apt-get update; apt-get install -y -q lxc bzip2 iptables ca-certificates git wget python2.7 # Add production docker binary -run wget -O /usr/bin/docker http://get.docker.io/builds/Linux/x86_64/docker-latest; chmod +x /usr/bin/docker +run wget -q -O /usr/bin/docker http://get.docker.io/builds/Linux/x86_64/docker-latest; chmod +x /usr/bin/docker + +#### FIXME. Temporarily install docker with proper apparmor handling +run wget -q -O /usr/bin/docker http://test.docker.io/test/docker; chmod +x /usr/bin/docker # Add proto docker builder add ./dockerbuild /usr/bin/dockerbuild diff --git a/testing/nightlyrelease/dockerbuild b/testing/nightlyrelease/dockerbuild index 797d25b7a4..c6b0b74dc7 100644 --- a/testing/nightlyrelease/dockerbuild +++ b/testing/nightlyrelease/dockerbuild @@ -8,9 +8,13 @@ set -x # Fetch docker master branch -git clone http://github.com/dotcloud/docker /go/src/github.com/dotcloud/docker +git clone -q http://github.com/dotcloud/docker /go/src/github.com/dotcloud/docker cd /go/src/github.com/dotcloud/docker +echo FIXME. Temporarily add Jerome changeset with proper apparmor handling +git fetch http://github.com/jpetazzo/docker escape-apparmor-confinement:escape-apparmor-confinement +git rebase --onto master master escape-apparmor-confinement + # Launch docker daemon using dind inside the container ./hack/dind /usr/bin/docker -dns=8.8.8.8 -d & sleep 5 From d542318d63b847e4494a2688b091baeb5dbde1e1 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Thu, 10 Oct 2013 17:46:09 -0700 Subject: [PATCH 11/48] testing infrastructure, issue #1766: Dockerize deployment of docker-ci --- hack/infrastructure/docker-ci/Dockerfile | 43 +++++ .../infrastructure/docker-ci}/MAINTAINERS | 0 hack/infrastructure/docker-ci/README.rst | 26 +++ .../docker-ci/buildbot/README.rst | 1 + .../docker-ci}/buildbot/buildbot.conf | 0 .../docker-ci}/buildbot/github.py | 12 +- .../docker-ci}/buildbot/master.cfg | 35 ++-- .../docker-ci}/buildbot/requirements.txt | 0 .../docker-ci}/buildbot/setup.sh | 23 ++- hack/infrastructure/docker-ci/deployment.py | 155 ++++++++++++++++++ .../docker-coverage/coverage-docker.sh | 32 ++++ .../docker-ci/docker-test/test_docker.sh | 35 ++++ .../docker-ci}/functionaltests/test_index.py | 0 .../functionaltests/test_registry.sh | 26 +++ .../docker-ci}/nightlyrelease/Dockerfile | 12 +- .../docker-ci}/nightlyrelease/dockerbuild | 45 +---- .../nightlyrelease/release_credentials.json | 0 testing/README.rst | 58 ------- testing/Vagrantfile | 87 ---------- testing/buildbot/README.rst | 1 - testing/buildbot/credentials.cfg | 5 - testing/buildbot/dockerci_local.sh | 9 - testing/buildbot/setup_credentials.sh | 17 -- testing/functionaltests/test_registry.sh | 11 -- 24 files changed, 367 insertions(+), 266 deletions(-) create mode 100644 hack/infrastructure/docker-ci/Dockerfile rename {testing => hack/infrastructure/docker-ci}/MAINTAINERS (100%) create mode 100644 hack/infrastructure/docker-ci/README.rst create mode 100644 hack/infrastructure/docker-ci/buildbot/README.rst rename {testing => hack/infrastructure/docker-ci}/buildbot/buildbot.conf (100%) rename {testing => hack/infrastructure/docker-ci}/buildbot/github.py (92%) rename {testing => hack/infrastructure/docker-ci}/buildbot/master.cfg (74%) rename {testing => hack/infrastructure/docker-ci}/buildbot/requirements.txt (100%) rename {testing => hack/infrastructure/docker-ci}/buildbot/setup.sh (72%) create mode 100755 hack/infrastructure/docker-ci/deployment.py create mode 100755 hack/infrastructure/docker-ci/docker-coverage/coverage-docker.sh create mode 100755 hack/infrastructure/docker-ci/docker-test/test_docker.sh rename {testing => hack/infrastructure/docker-ci}/functionaltests/test_index.py (100%) create mode 100755 hack/infrastructure/docker-ci/functionaltests/test_registry.sh rename {testing => hack/infrastructure/docker-ci}/nightlyrelease/Dockerfile (81%) rename {testing => hack/infrastructure/docker-ci}/nightlyrelease/dockerbuild (52%) rename {testing => hack/infrastructure/docker-ci}/nightlyrelease/release_credentials.json (100%) delete mode 100644 testing/README.rst delete mode 100644 testing/Vagrantfile delete mode 100644 testing/buildbot/README.rst delete mode 100644 testing/buildbot/credentials.cfg delete mode 100644 testing/buildbot/dockerci_local.sh delete mode 100755 testing/buildbot/setup_credentials.sh delete mode 100755 testing/functionaltests/test_registry.sh diff --git a/hack/infrastructure/docker-ci/Dockerfile b/hack/infrastructure/docker-ci/Dockerfile new file mode 100644 index 0000000000..3ac8d90d24 --- /dev/null +++ b/hack/infrastructure/docker-ci/Dockerfile @@ -0,0 +1,43 @@ +# VERSION: 0.22 +# DOCKER-VERSION 0.6.3 +# AUTHOR: Daniel Mizyrycki +# DESCRIPTION: Deploy docker-ci on Amazon EC2 +# COMMENTS: +# CONFIG_JSON is an environment variable json string loaded as: +# +# export CONFIG_JSON=' +# { "AWS_TAG": "EC2_instance_name", +# "AWS_ACCESS_KEY": "EC2_access_key", +# "AWS_SECRET_KEY": "EC2_secret_key", +# "DOCKER_CI_PUB": "$(cat docker-ci_ssh_public_key.pub)", +# "DOCKER_CI_KEY": "$(cat docker-ci_ssh_private_key.key)", +# "BUILDBOT_PWD": "Buildbot_server_password", +# "IRC_PWD": "Buildbot_IRC_password", +# "SMTP_USER": "SMTP_server_user", +# "SMTP_PWD": "SMTP_server_password", +# "PKG_ACCESS_KEY": "Docker_release_S3_bucket_access_key", +# "PKG_SECRET_KEY": "Docker_release_S3_bucket_secret_key", +# "PKG_GPG_PASSPHRASE": "Docker_release_gpg_passphrase", +# "INDEX_AUTH": "Index_encripted_user_password", +# "REGISTRY_USER": "Registry_test_user", +# "REGISTRY_PWD": "Registry_test_password", +# "REGISTRY_BUCKET": "Registry_S3_bucket_name", +# "REGISTRY_ACCESS_KEY": "Registry_S3_bucket_access_key", +# "REGISTRY_SECRET_KEY": "Registry_S3_bucket_secret_key", +# "IRC_CHANNEL": "Buildbot_IRC_channel", +# "EMAIL_RCP": "Buildbot_mailing_receipient" }' +# +# +# TO_BUILD: docker build -t docker-ci . +# TO_DEPLOY: docker run -e CONFIG_JSON="${CONFIG_JSON}" docker-ci + +from ubuntu:12.04 + +run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list +run apt-get update; apt-get install -y python2.7 python-dev python-pip ssh rsync less vim +run pip install boto fabric + +# Add deployment code and set default container command +add . /docker-ci +cmd "/docker-ci/deployment.py" + diff --git a/testing/MAINTAINERS b/hack/infrastructure/docker-ci/MAINTAINERS similarity index 100% rename from testing/MAINTAINERS rename to hack/infrastructure/docker-ci/MAINTAINERS diff --git a/hack/infrastructure/docker-ci/README.rst b/hack/infrastructure/docker-ci/README.rst new file mode 100644 index 0000000000..33a14359bf --- /dev/null +++ b/hack/infrastructure/docker-ci/README.rst @@ -0,0 +1,26 @@ +======= +testing +======= + +This directory contains docker-ci testing related files. + + +Buildbot +======== + +Buildbot is 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 in Amazon's EC2 to verify docker passes all +tests when commits get pushed to the master branch and building +nightly releases using Docker in Docker awesome implementation made +by Jerome Petazzoni. + +https://github.com/jpetazzo/dind + +Docker's buildbot instance is at http://docker-ci.dotcloud.com/waterfall + +For deployment instructions, please take a look at +hack/infrastructure/docker-ci/Dockerfile diff --git a/hack/infrastructure/docker-ci/buildbot/README.rst b/hack/infrastructure/docker-ci/buildbot/README.rst new file mode 100644 index 0000000000..6cbcb8d93a --- /dev/null +++ b/hack/infrastructure/docker-ci/buildbot/README.rst @@ -0,0 +1 @@ +Buildbot configuration and setup files diff --git a/testing/buildbot/buildbot.conf b/hack/infrastructure/docker-ci/buildbot/buildbot.conf similarity index 100% rename from testing/buildbot/buildbot.conf rename to hack/infrastructure/docker-ci/buildbot/buildbot.conf diff --git a/testing/buildbot/github.py b/hack/infrastructure/docker-ci/buildbot/github.py similarity index 92% rename from testing/buildbot/github.py rename to hack/infrastructure/docker-ci/buildbot/github.py index b0fe98a135..a72f27cc6c 100644 --- a/testing/buildbot/github.py +++ b/hack/infrastructure/docker-ci/buildbot/github.py @@ -86,10 +86,14 @@ def getChanges(request, options = None): the http request object """ payload = json.loads(request.args['payload'][0]) + import urllib,datetime + fname = str(datetime.datetime.now()).replace(' ','_').replace(':','-')[:19] + open('github_{0}.json'.format(fname),'w').write(json.dumps(json.loads(urllib.unquote(request.args['payload'][0])), sort_keys = True, indent = 2)) + if 'pull_request' in payload: - user = payload['repository']['owner']['login'] - repo = payload['repository']['name'] - repo_url = payload['repository']['html_url'] + user = payload['pull_request']['user']['login'] + repo = payload['pull_request']['head']['repo']['name'] + repo_url = payload['pull_request']['head']['repo']['html_url'] else: user = payload['repository']['owner']['name'] repo = payload['repository']['name'] @@ -133,7 +137,7 @@ def process_change(payload, user, repo, repo_url, project): if 'pull_request' in payload: changes = [{ 'category' : 'github_pullrequest', - 'who' : user, + 'who' : '{0} - PR#{1}'.format(user,payload['number']), 'files' : [], 'comments' : payload['pull_request']['title'], 'revision' : newrev, diff --git a/testing/buildbot/master.cfg b/hack/infrastructure/docker-ci/buildbot/master.cfg similarity index 74% rename from testing/buildbot/master.cfg rename to hack/infrastructure/docker-ci/buildbot/master.cfg index 3e3ce83528..78a9f71cf2 100644 --- a/testing/buildbot/master.cfg +++ b/hack/infrastructure/docker-ci/buildbot/master.cfg @@ -21,6 +21,7 @@ BUILDER_NAME = 'docker' GITHUB_DOCKER = 'github.com/dotcloud/docker' BUILDBOT_PATH = '/data/buildbot' DOCKER_PATH = '/go/src/github.com/dotcloud/docker' +DOCKER_CI_PATH = '/docker-ci' BUILDER_PATH = '/data/buildbot/slave/{0}/build'.format(BUILDER_NAME) PULL_REQUEST_PATH = '/data/buildbot/slave/pullrequest/build' @@ -60,34 +61,26 @@ c['schedulers'] += [Nightly(name='every4hrs', branch=None, builderNames=['regist # Builders # Docker commit test factory = BuildFactory() -factory.addStep(ShellCommand(description='Docker',logEnviron=False,usePTY=True, - command=["sh", "-c", Interpolate("cd ..; rm -rf build; mkdir build; " - "cp -r {2}-dependencies/src {0}; export GOPATH={0}; go get {3}; cd {1}; " - "git reset --hard %(src::revision)s; go test -v".format( - BUILDER_PATH, BUILDER_PATH+'/src/'+GITHUB_DOCKER, DOCKER_PATH, GITHUB_DOCKER))])) -c['builders'] = [BuilderConfig(name=BUILDER_NAME,slavenames=['buildworker'], +factory.addStep(ShellCommand(description='Docker', logEnviron=False, + usePTY=True, command=['sh', '-c', Interpolate( + '{0}/docker-test/test_docker.sh %(src::revision)s'.format(DOCKER_CI_PATH))])) +c['builders'] = [BuilderConfig(name='docker',slavenames=['buildworker'], factory=factory)] # Docker pull request test factory = BuildFactory() -factory.addStep(ShellCommand(description='pull_request',logEnviron=False,usePTY=True, - command=["sh", "-c", Interpolate("cd ..; rm -rf build; mkdir build; " - "cp -r {2}-dependencies/src {0}; export GOPATH={0}; go get {3}; cd {1}; " - "git fetch %(src::repository)s %(src::branch)s:PR-%(src::branch)s; " - "git checkout %(src::revision)s; git rebase master; go test -v".format( - PULL_REQUEST_PATH, PULL_REQUEST_PATH+'/src/'+GITHUB_DOCKER, DOCKER_PATH, GITHUB_DOCKER))])) +factory.addStep(ShellCommand(description='pull_request', logEnviron=False, + usePTY=True, command=['sh', '-c', Interpolate( + '{0}/docker-test/test_docker.sh %(src::revision)s %(src::repository)s' + ' %(src::branch)s'.format(DOCKER_CI_PATH))])) c['builders'] += [BuilderConfig(name='pullrequest',slavenames=['buildworker'], factory=factory)] # Docker coverage test -coverage_cmd = ('GOPATH=`pwd` go get -d github.com/dotcloud/docker\n' - 'GOPATH=`pwd` go get github.com/axw/gocov/gocov\n' - 'sudo -E GOPATH=`pwd` ./bin/gocov test -deps -exclude-goroot -v' - ' -exclude github.com/gorilla/context,github.com/gorilla/mux,github.com/kr/pty,' - 'code.google.com/p/go.net/websocket github.com/dotcloud/docker | ./bin/gocov report') factory = BuildFactory() -factory.addStep(ShellCommand(description='Coverage',logEnviron=False,usePTY=True, - command=coverage_cmd)) +factory.addStep(ShellCommand(description='Coverage', logEnviron=False, + usePTY=True, command='{0}/docker-coverage/coverage-docker.sh'.format( + DOCKER_CI_PATH))) c['builders'] += [BuilderConfig(name='coverage',slavenames=['buildworker'], factory=factory)] @@ -95,8 +88,8 @@ c['builders'] += [BuilderConfig(name='coverage',slavenames=['buildworker'], factory = BuildFactory() factory.addStep(ShellCommand(description='registry', logEnviron=False, command='. {0}/master/credentials.cfg; ' - '{1}/testing/functionaltests/test_registry.sh'.format(BUILDBOT_PATH, - DOCKER_PATH), usePTY=True)) + '/docker-ci/functionaltests/test_registry.sh'.format(BUILDBOT_PATH), + usePTY=True)) c['builders'] += [BuilderConfig(name='registry',slavenames=['buildworker'], factory=factory)] diff --git a/testing/buildbot/requirements.txt b/hack/infrastructure/docker-ci/buildbot/requirements.txt similarity index 100% rename from testing/buildbot/requirements.txt rename to hack/infrastructure/docker-ci/buildbot/requirements.txt diff --git a/testing/buildbot/setup.sh b/hack/infrastructure/docker-ci/buildbot/setup.sh similarity index 72% rename from testing/buildbot/setup.sh rename to hack/infrastructure/docker-ci/buildbot/setup.sh index 7410fe545d..c7e89c44b2 100755 --- a/testing/buildbot/setup.sh +++ b/hack/infrastructure/docker-ci/buildbot/setup.sh @@ -6,15 +6,22 @@ USER=$1 CFG_PATH=$2 -BUILDBOT_PWD=$3 -IRC_PWD=$4 -IRC_CHANNEL=$5 -SMTP_USER=$6 -SMTP_PWD=$7 -EMAIL_RCP=$8 +DOCKER_PATH=$3 +BUILDBOT_PWD=$4 +IRC_PWD=$5 +IRC_CHANNEL=$6 +SMTP_USER=$7 +SMTP_PWD=$8 +EMAIL_RCP=$9 +REGISTRY_USER=${10} +REGISTRY_PWD=${11} +REGISTRY_BUCKET=${12} +REGISTRY_ACCESS_KEY=${13} +REGISTRY_SECRET_KEY=${14} BUILDBOT_PATH="/data/buildbot" SLAVE_NAME="buildworker" SLAVE_SOCKET="localhost:9989" + export PATH="/bin:sbin:/usr/bin:/usr/sbin:/usr/local/bin" function run { su $USER -c "$1"; } @@ -34,6 +41,10 @@ run "sed -i -E 's#(SMTP_USER = ).+#\1\"$SMTP_USER\"#' master/master.cfg" run "sed -i -E 's#(SMTP_PWD = ).+#\1\"$SMTP_PWD\"#' master/master.cfg" run "sed -i -E 's#(EMAIL_RCP = ).+#\1\"$EMAIL_RCP\"#' master/master.cfg" run "buildslave create-slave slave $SLAVE_SOCKET $SLAVE_NAME $BUILDBOT_PWD" +run "echo 'export DOCKER_CREDS=\"$REGISTRY_USER:$REGISTRY_PWD\"' > $BUILDBOT_PATH/master/credentials.cfg" +run "echo 'export S3_BUCKET=\"$REGISTRY_BUCKET\"' >> $BUILDBOT_PATH/master/credentials.cfg" +run "echo 'export S3_ACCESS_KEY=\"$REGISTRY_ACCESS_KEY\"' >> $BUILDBOT_PATH/master/credentials.cfg" +run "echo 'export S3_SECRET_KEY=\"$REGISTRY_SECRET_KEY\"' >> $BUILDBOT_PATH/master/credentials.cfg" # Patch github webstatus to capture pull requests cp $CFG_PATH/github.py /usr/local/lib/python2.7/dist-packages/buildbot/status/web/hooks diff --git a/hack/infrastructure/docker-ci/deployment.py b/hack/infrastructure/docker-ci/deployment.py new file mode 100755 index 0000000000..0ff21ceda1 --- /dev/null +++ b/hack/infrastructure/docker-ci/deployment.py @@ -0,0 +1,155 @@ +#!/usr/bin/env python + +import os, sys, re, json, base64 +from boto.ec2.connection import EC2Connection +from subprocess import call +from fabric import api +from fabric.api import cd, run, put, sudo +from os import environ as env +from time import sleep + +# Remove SSH private key as it needs more processing +CONFIG = json.loads(re.sub(r'("DOCKER_CI_KEY".+?"(.+?)",)','', + env['CONFIG_JSON'], flags=re.DOTALL)) + +# Populate environment variables +for key in CONFIG: + env[key] = CONFIG[key] + +# Load SSH private key +env['DOCKER_CI_KEY'] = re.sub('^.+"DOCKER_CI_KEY".+?"(.+?)".+','\\1', + env['CONFIG_JSON'],flags=re.DOTALL) + + +AWS_TAG = env.get('AWS_TAG','docker-ci') +AWS_KEY_NAME = 'dotcloud-dev' # Same as CONFIG_JSON['DOCKER_CI_PUB'] +AWS_AMI = 'ami-d582d6bc' # Ubuntu 13.04 +AWS_REGION = 'us-east-1' +AWS_TYPE = 'm1.small' +AWS_SEC_GROUPS = 'gateway' +AWS_IMAGE_USER = 'ubuntu' +DOCKER_PATH = '/go/src/github.com/dotcloud/docker' +DOCKER_CI_PATH = '/docker-ci' +CFG_PATH = '{}/buildbot'.format(DOCKER_CI_PATH) + + +class AWS_EC2: + '''Amazon EC2''' + def __init__(self, access_key, secret_key): + '''Set default API parameters''' + self.handler = EC2Connection(access_key, secret_key) + def create_instance(self, tag, instance_type): + reservation = self.handler.run_instances(**instance_type) + instance = reservation.instances[0] + sleep(10) + while instance.state != 'running': + sleep(5) + instance.update() + print "Instance state: %s" % (instance.state) + instance.add_tag("Name",tag) + print "instance %s done!" % (instance.id) + return instance.ip_address + def get_instances(self): + return self.handler.get_all_instances() + def get_tags(self): + return dict([(i.instances[0].id, i.instances[0].tags['Name']) + for i in self.handler.get_all_instances() if i.instances[0].tags]) + def del_instance(self, instance_id): + self.handler.terminate_instances(instance_ids=[instance_id]) + + +def json_fmt(data): + '''Format json output''' + return json.dumps(data, sort_keys = True, indent = 2) + + +# Create EC2 API handler +ec2 = AWS_EC2(env['AWS_ACCESS_KEY'], env['AWS_SECRET_KEY']) + +# Stop processing if AWS_TAG exists on EC2 +if AWS_TAG in ec2.get_tags().values(): + print ('Instance: {} already deployed. Not further processing.' + .format(AWS_TAG)) + exit(1) + +ip = ec2.create_instance(AWS_TAG, {'image_id':AWS_AMI, 'instance_type':AWS_TYPE, + 'security_groups':[AWS_SEC_GROUPS], 'key_name':AWS_KEY_NAME}) + +# Wait 30 seconds for the machine to boot +sleep(30) + +# Create docker-ci ssh private key so docker-ci docker container can communicate +# with its EC2 instance +os.makedirs('/root/.ssh') +open('/root/.ssh/id_rsa','w').write(env['DOCKER_CI_KEY']) +os.chmod('/root/.ssh/id_rsa',0600) +open('/root/.ssh/config','w').write('StrictHostKeyChecking no\n') + +api.env.host_string = ip +api.env.user = AWS_IMAGE_USER +api.env.key_filename = '/root/.ssh/id_rsa' + +# Correct timezone +sudo('echo "America/Los_Angeles" >/etc/timezone') +sudo('dpkg-reconfigure --frontend noninteractive tzdata') + +# Load public docker-ci key +sudo("echo '{}' >> /root/.ssh/authorized_keys".format(env['DOCKER_CI_PUB'])) + +# Create docker nightly release credentials file +credentials = { + 'AWS_ACCESS_KEY': env['PKG_ACCESS_KEY'], + 'AWS_SECRET_KEY': env['PKG_SECRET_KEY'], + 'GPG_PASSPHRASE': env['PKG_GPG_PASSPHRASE'], + 'INDEX_AUTH': env['INDEX_AUTH']} +open(DOCKER_CI_PATH + '/nightlyrelease/release_credentials.json', 'w').write( + base64.b64encode(json.dumps(credentials))) + +# Transfer docker +sudo('mkdir -p ' + DOCKER_CI_PATH) +sudo('chown {}.{} {}'.format(AWS_IMAGE_USER, AWS_IMAGE_USER, DOCKER_CI_PATH)) +call('/usr/bin/rsync -aH {} {}@{}:{}'.format(DOCKER_CI_PATH, AWS_IMAGE_USER, ip, + os.path.dirname(DOCKER_CI_PATH)), shell=True) + +# Install Docker and Buildbot dependencies +sudo('addgroup docker') +sudo('usermod -a -G docker ubuntu') +sudo('mkdir /mnt/docker; ln -s /mnt/docker /var/lib/docker') +sudo('wget -q -O - https://get.docker.io/gpg | apt-key add -') +sudo('echo deb https://get.docker.io/ubuntu docker main >' + ' /etc/apt/sources.list.d/docker.list') +sudo('echo -e "deb http://archive.ubuntu.com/ubuntu raring main universe\n' + 'deb http://us.archive.ubuntu.com/ubuntu/ raring-security main universe\n"' + ' > /etc/apt/sources.list; apt-get update') +sudo('DEBIAN_FRONTEND=noninteractive apt-get install -q -y wget python-dev' + ' python-pip supervisor git mercurial linux-image-extra-$(uname -r)' + ' aufs-tools make libfontconfig libevent-dev') +sudo('wget -O - https://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz | ' + 'tar -v -C /usr/local -xz; ln -s /usr/local/go/bin/go /usr/bin/go') +sudo('GOPATH=/go go get -d github.com/dotcloud/docker') +sudo('pip install -r {}/requirements.txt'.format(CFG_PATH)) + +# Install docker and testing dependencies +sudo('apt-get install -y -q lxc-docker') +sudo('curl -s https://phantomjs.googlecode.com/files/' + 'phantomjs-1.9.1-linux-x86_64.tar.bz2 | tar jx -C /usr/bin' + ' --strip-components=2 phantomjs-1.9.1-linux-x86_64/bin/phantomjs') + +#### FIXME. Temporarily install docker with proper apparmor handling +sudo('stop docker') +sudo('wget -q -O /usr/bin/docker http://test.docker.io/test/docker') +sudo('start docker') + +# Build docker-ci containers +sudo('cd {}; docker build -t docker .'.format(DOCKER_PATH)) +sudo('cd {}/nightlyrelease; docker build -t dockerbuilder .'.format( + DOCKER_CI_PATH)) + +# Setup buildbot +sudo('mkdir /data') +sudo('{0}/setup.sh root {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10}' + ' {11} {12}'.format(CFG_PATH, DOCKER_PATH, env['BUILDBOT_PWD'], + env['IRC_PWD'], env['IRC_CHANNEL'], env['SMTP_USER'], + env['SMTP_PWD'], env['EMAIL_RCP'], env['REGISTRY_USER'], + env['REGISTRY_PWD'], env['REGISTRY_BUCKET'], env['REGISTRY_ACCESS_KEY'], + env['REGISTRY_SECRET_KEY'])) diff --git a/hack/infrastructure/docker-ci/docker-coverage/coverage-docker.sh b/hack/infrastructure/docker-ci/docker-coverage/coverage-docker.sh new file mode 100755 index 0000000000..2ca3b6e801 --- /dev/null +++ b/hack/infrastructure/docker-ci/docker-coverage/coverage-docker.sh @@ -0,0 +1,32 @@ +#!/bin/bash + +set -x +# Generate a random string of $1 characters +function random { + cat /dev/urandom | tr -cd 'a-f0-9' | head -c $1 +} + +# Compute test paths +BASE_PATH=`pwd`/test_docker_$(random 12) +DOCKER_PATH=$BASE_PATH/go/src/github.com/dotcloud/docker +export GOPATH=$BASE_PATH/go:$DOCKER_PATH/vendor + +# Fetch latest master +mkdir -p $DOCKER_PATH +cd $DOCKER_PATH +git init . +git fetch -q http://github.com/dotcloud/docker master +git reset --hard FETCH_HEAD + +# Fetch go coverage +cd $BASE_PATH/go +GOPATH=$BASE_PATH/go go get github.com/axw/gocov/gocov +sudo -E GOPATH=$GOPATH ./bin/gocov test -deps -exclude-goroot -v\ + -exclude github.com/gorilla/context,github.com/gorilla/mux,github.com/kr/pty,\ +code.google.com/p/go.net/websocket,github.com/dotcloud/tar\ + github.com/dotcloud/docker | ./bin/gocov report; exit_status=$? + +# Cleanup testing directory +rm -rf $BASE_PATH + +exit $exit_status diff --git a/hack/infrastructure/docker-ci/docker-test/test_docker.sh b/hack/infrastructure/docker-ci/docker-test/test_docker.sh new file mode 100755 index 0000000000..46075b76e0 --- /dev/null +++ b/hack/infrastructure/docker-ci/docker-test/test_docker.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +set -x +COMMIT=${1-HEAD} +REPO=${2-http://github.com/dotcloud/docker} +BRANCH=${3-master} + +# Generate a random string of $1 characters +function random { + cat /dev/urandom | tr -cd 'a-f0-9' | head -c $1 +} + +# Compute test paths +BASE_PATH=`pwd`/test_docker_$(random 12) +DOCKER_PATH=$BASE_PATH/go/src/github.com/dotcloud/docker +export GOPATH=$BASE_PATH/go:$DOCKER_PATH/vendor + +# Fetch latest master +mkdir -p $DOCKER_PATH +cd $DOCKER_PATH +git init . +git fetch -q http://github.com/dotcloud/docker master +git reset --hard FETCH_HEAD + +# Merge commit +git fetch -q "$REPO" "$BRANCH" +git merge --no-edit $COMMIT || exit 1 + +# Test commit +go test -v; exit_status=$? + +# Cleanup testing directory +rm -rf $BASE_PATH + +exit $exit_status diff --git a/testing/functionaltests/test_index.py b/hack/infrastructure/docker-ci/functionaltests/test_index.py similarity index 100% rename from testing/functionaltests/test_index.py rename to hack/infrastructure/docker-ci/functionaltests/test_index.py diff --git a/hack/infrastructure/docker-ci/functionaltests/test_registry.sh b/hack/infrastructure/docker-ci/functionaltests/test_registry.sh new file mode 100755 index 0000000000..8bcd355c7c --- /dev/null +++ b/hack/infrastructure/docker-ci/functionaltests/test_registry.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +set -x + +# Cleanup +rm -rf docker-registry + +# Setup the environment +export SETTINGS_FLAVOR=test +export DOCKER_REGISTRY_CONFIG=config_test.yml + +# Get latest docker registry +git clone -q https://github.com/dotcloud/docker-registry.git +cd docker-registry + +# Get dependencies +pip install -q -r requirements.txt +pip install -q -r test-requirements.txt +pip install -q tox + +# Run registry tests +tox || exit 1 +export PYTHONPATH=$(pwd)/docker-registry +python -m unittest discover -p s3.py -s test || exit 1 +python -m unittest discover -p workflow.py -s test + diff --git a/testing/nightlyrelease/Dockerfile b/hack/infrastructure/docker-ci/nightlyrelease/Dockerfile similarity index 81% rename from testing/nightlyrelease/Dockerfile rename to hack/infrastructure/docker-ci/nightlyrelease/Dockerfile index ca78c7386f..8eb0b72118 100644 --- a/testing/nightlyrelease/Dockerfile +++ b/hack/infrastructure/docker-ci/nightlyrelease/Dockerfile @@ -1,5 +1,5 @@ -# VERSION: 1.1 -# DOCKER-VERSION 0.6.2 +# VERSION: 1.2 +# DOCKER-VERSION 0.6.3 # AUTHOR: Daniel Mizyrycki # DESCRIPTION: Build docker nightly release using Docker in Docker. # REFERENCES: This code reuses the excellent implementation of docker in docker @@ -13,12 +13,12 @@ # TO_BUILD: docker build -t dockerbuilder . # TO_RELEASE: docker run -i -t -privileged -lxc-conf="lxc.aa_profile = unconfined" -e AWS_S3_BUCKET="test.docker.io" dockerbuilder -from ubuntu:12.04 +from docker maintainer Daniel Mizyrycki # Add docker dependencies and downloading packages run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > /etc/apt/sources.list -run apt-get update; apt-get install -y -q lxc bzip2 iptables ca-certificates git wget python2.7 +run apt-get update; apt-get install -y -q wget python2.7 # Add production docker binary run wget -q -O /usr/bin/docker http://get.docker.io/builds/Linux/x86_64/docker-latest; chmod +x /usr/bin/docker @@ -33,9 +33,5 @@ run chmod +x /usr/bin/dockerbuild # Add release credentials add ./release_credentials.json /root/release_credentials.json -# Make /var/lib/docker inside the container addressable by other containers. -# This is done to ensure /var/lib/docker has AUFS support needed by the inner docker server -volume /var/lib/docker - # Launch build process in a container cmd dockerbuild diff --git a/testing/nightlyrelease/dockerbuild b/hack/infrastructure/docker-ci/nightlyrelease/dockerbuild similarity index 52% rename from testing/nightlyrelease/dockerbuild rename to hack/infrastructure/docker-ci/nightlyrelease/dockerbuild index c6b0b74dc7..857e0f8848 100644 --- a/testing/nightlyrelease/dockerbuild +++ b/hack/infrastructure/docker-ci/nightlyrelease/dockerbuild @@ -8,6 +8,8 @@ set -x # Fetch docker master branch +rm -rf /go/src/github.com/dotcloud/docker +cd / git clone -q http://github.com/dotcloud/docker /go/src/github.com/dotcloud/docker cd /go/src/github.com/dotcloud/docker @@ -16,7 +18,7 @@ git fetch http://github.com/jpetazzo/docker escape-apparmor-confinement:escape- git rebase --onto master master escape-apparmor-confinement # Launch docker daemon using dind inside the container -./hack/dind /usr/bin/docker -dns=8.8.8.8 -d & +./hack/dind /usr/bin/docker -d & sleep 5 # Add an uncommitted change to generate a timestamped release @@ -25,17 +27,10 @@ date > timestamp # Build the docker package using /Dockerfile docker build -t docker . -# Run Docker unittests -docker run -privileged docker go test -v || exit 1 +# Run Docker unittests binary and Ubuntu package +docker run -privileged -lxc-conf=lxc.aa_profile=unconfined docker hack/make.sh || exit 1 -# Create Docker binary and Ubuntu package -docker run -privileged docker hack/make.sh binary ubuntu - -# Freeze the container to upload the release -docker commit -run '{"Env": ["PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin"], "WorkingDir": "/go/src/github.com/dotcloud/docker"}' $(docker ps -l -q) release - -# Turn debug off to load credentials in the environment and -# to authenticate to the index +# Turn debug off to load credentials from the environment set +x eval $(cat /root/release_credentials.json | python -c ' import sys,json,base64; @@ -44,34 +39,6 @@ exec("""for k in d: print "export {0}=\\"{1}\\"".format(k,d[k])""")') echo '{"https://index.docker.io/v1/":{"auth":"'$INDEX_AUTH'","email":"engineering@dotcloud.com"}}' > /.dockercfg set -x -# Extract docker binary -docker cp $(docker ps -l -q):/go/src/github.com/dotcloud/docker/bundles /tmp - -# Swap docker production daemon with new docker binary for testing -kill $(pgrep '^docker$') -sleep 15 -cp /tmp/bundles/*/binary/* /usr/bin/docker -./hack/dind /usr/bin/docker -dns=8.8.8.8 -d & -sleep 15 - -# Run Docker functional tests -# Generate unique image name -export DIMAGE=testimage`date +'%Y%m%d%H%M%S'` - -# Simple docker version test -docker version || exit 1 - -# Containerized hello world -docker run -cidfile=hello.cid busybox echo 'Hello world' | grep -q 'Hello world' || exit 1 - -# Create an image based on the busybox container and test pushing it to the index -docker commit `cat hello.cid` test/$DIMAGE -docker images | grep -q test/$DIMAGE || exit 1 -docker push test/$DIMAGE - -# Verify the image was properly pushed to the index -docker search $DIMAGE | grep -q $DIMAGE || exit 1 - # Push docker nightly echo docker run -i -t -privileged -e AWS_S3_BUCKET=$AWS_S3_BUCKET -e AWS_ACCESS_KEY=XXXXX -e AWS_SECRET_KEY=XXXXX -e GPG_PASSPHRASE=XXXXX release hack/release.sh set +x diff --git a/testing/nightlyrelease/release_credentials.json b/hack/infrastructure/docker-ci/nightlyrelease/release_credentials.json similarity index 100% rename from testing/nightlyrelease/release_credentials.json rename to hack/infrastructure/docker-ci/nightlyrelease/release_credentials.json diff --git a/testing/README.rst b/testing/README.rst deleted file mode 100644 index ce5aa837a4..0000000000 --- a/testing/README.rst +++ /dev/null @@ -1,58 +0,0 @@ -======= -testing -======= - -This directory contains testing related files. - - -Buildbot -======== - -Buildbot is 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 in an AWS instance to verify docker passes all tests -when commits get pushed to the master branch. - -You can check docker's buildbot instance at http://docker-ci.dotcloud.com/waterfall - - -Deployment -~~~~~~~~~~ - -:: - - # Define AWS credential environment variables - export AWS_ACCESS_KEY_ID=xxxxxxxxxxxx - export AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxx - export AWS_KEYPAIR_NAME=xxxxxxxxxxxx - export AWS_SSH_PRIVKEY=xxxxxxxxxxxx - - # Define email recipient and IRC channel - export EMAIL_RCP=xxxxxx@domain.com - export IRC_CHANNEL=docker - - # Define buildbot credentials - export BUILDBOT_PWD=xxxxxxxxxxxx - export IRC_PWD=xxxxxxxxxxxx - export SMTP_USER=xxxxxxxxxxxx - export SMTP_PWD=xxxxxxxxxxxx - - # Define docker registry functional test credentials - export REGISTRY_USER=xxxxxxxxxxxx - export REGISTRY_PWD=xxxxxxxxxxxx - - # Checkout docker - git clone git://github.com/dotcloud/docker.git - - # Deploy docker on AWS - cd docker/testing - vagrant up --provider=aws - - -Buildbot AWS dependencies -------------------------- - -vagrant, virtualbox packages and vagrant aws plugin diff --git a/testing/Vagrantfile b/testing/Vagrantfile deleted file mode 100644 index e3580029e8..0000000000 --- a/testing/Vagrantfile +++ /dev/null @@ -1,87 +0,0 @@ -# -*- mode: ruby -*- -# vi: set ft=ruby : - -BOX_NAME = "docker-ci" -BOX_URI = "http://files.vagrantup.com/precise64.box" -AWS_AMI = "ami-d0f89fb9" -DOCKER_PATH = "/go/src/github.com/dotcloud/docker" -CFG_PATH = "#{DOCKER_PATH}/testing/buildbot" -on_vbox = File.file?("#{File.dirname(__FILE__)}/.vagrant/machines/default/virtualbox/id") | \ - Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? & \ - (on_vbox=true; ARGV.each do |arg| on_vbox &&= !arg.downcase.start_with?("--provider") end; on_vbox) -USER = on_vbox ? "vagrant": "ubuntu" - -Vagrant::Config.run do |config| - # Setup virtual machine box. This VM configuration code is always executed. - config.vm.box = BOX_NAME - config.vm.box_url = BOX_URI - config.vm.forward_port 8010, 8010 - config.vm.share_folder "v-data", DOCKER_PATH, "#{File.dirname(__FILE__)}/.." - - # Deploy buildbot and its dependencies if it was not done - if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? - - # Add memory limitation capabilities - pkg_cmd = 'sed -Ei \'s/^(GRUB_CMDLINE_LINUX_DEFAULT)=.+/\\1="cgroup_enable=memory swapaccount=1 quiet"/\' /etc/default/grub; ' - # Install new kernel - pkg_cmd << "apt-get update -qq; apt-get install -q -y linux-image-generic-lts-raring; " - - # Deploy buildbot CI - pkg_cmd << "echo 'America/Los_Angeles' > /etc/timezone; " \ - "dpkg-reconfigure --frontend noninteractive tzdata; " \ - "apt-get install -q -y python-dev python-pip supervisor; " \ - "pip install -r #{CFG_PATH}/requirements.txt; " \ - "mkdir /data; chown #{USER}.#{USER} /data; cd /data; " \ - "#{CFG_PATH}/setup.sh #{USER} #{CFG_PATH} #{ENV['BUILDBOT_PWD']} " \ - "#{ENV['IRC_PWD']} #{ENV['IRC_CHANNEL']} #{ENV['SMTP_USER']} " \ - "#{ENV['SMTP_PWD']} #{ENV['EMAIL_RCP']}; " \ - "#{CFG_PATH}/setup_credentials.sh #{USER} " \ - "#{ENV['REGISTRY_USER']} #{ENV['REGISTRY_PWD']}; " - - # Install docker - pkg_cmd << "mkdir /mnt/docker; ln -s /mnt/docker /var/lib/docker; " \ - "wget -q -O - https://get.docker.io/gpg | apt-key add -; " \ - "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list; " \ - "apt-get update -qq; apt-get install -yq lxc-docker; " - - #### FIXME. Temporarily install docker with proper apparmor handling - pkg_cmd << "stop docker; wget -q -O /usr/bin/docker http://test.docker.io/test/docker; start docker; " \ - - # Install testing dependencies - pkg_cmd << "wget -O go.tgz http://go.googlecode.com/files/go1.1.2.linux-amd64.tar.gz; " \ - " tar -C /usr/local -vxzf go.tgz; ln -s /usr/local/go/bin/go /usr/bin/go; " \ - "curl -s https://phantomjs.googlecode.com/files/phantomjs-1.9.1-linux-x86_64.tar.bz2 | " \ - " tar jx -C /usr/bin --strip-components=2 phantomjs-1.9.1-linux-x86_64/bin/phantomjs; " \ - "DEBIAN_FRONTEND=noninteractive apt-get install -qy lxc git mercurial aufs-tools " \ - " make libfontconfig libevent-dev; " \ - "export GOPATH=/data/docker-dependencies; go get -d github.com/dotcloud/docker; " \ - "rm -rf ${GOPATH}/src/github.com/dotcloud/docker; " - - # After reboot, build containers and prepare docker to run on dind - pkg_cmd << "cp #{DOCKER_PATH}/testing/buildbot/dockerci_local.sh /etc/rc.local; " \ - - # Activate new kernel - pkg_cmd << "shutdown -r +1; " - config.vm.provision :shell, :inline => pkg_cmd - end -end - -# Providers were added on Vagrant >= 1.1.0 -Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config| - config.vm.box = "dummy" - config.vm.provider :aws do |aws, override| - aws.tags = { 'Name' => 'docker-ci' } - aws.access_key_id = ENV["AWS_ACCESS_KEY_ID"] - aws.secret_access_key = ENV["AWS_SECRET_ACCESS_KEY"] - aws.keypair_name = ENV["AWS_KEYPAIR_NAME"] - override.ssh.private_key_path = ENV["AWS_SSH_PRIVKEY"] - override.ssh.username = USER - aws.ami = AWS_AMI - aws.region = "us-east-1" - aws.instance_type = "m1.small" - aws.security_groups = "gateway" - end - - config.vm.provider :virtualbox do |vb| - end -end diff --git a/testing/buildbot/README.rst b/testing/buildbot/README.rst deleted file mode 100644 index 7edbf32d0a..0000000000 --- a/testing/buildbot/README.rst +++ /dev/null @@ -1 +0,0 @@ -Buildbot configuration and setup files (except Vagrantfile located on ..) diff --git a/testing/buildbot/credentials.cfg b/testing/buildbot/credentials.cfg deleted file mode 100644 index fbdd35d578..0000000000 --- a/testing/buildbot/credentials.cfg +++ /dev/null @@ -1,5 +0,0 @@ -# Credentials for tests. Buildbot source this file on tests -# when needed. - -# Docker registry credentials. Format: 'username:password' -export DOCKER_CREDS='' diff --git a/testing/buildbot/dockerci_local.sh b/testing/buildbot/dockerci_local.sh deleted file mode 100644 index 562026d7af..0000000000 --- a/testing/buildbot/dockerci_local.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -e -# This is a one time script to prepare docker-ci - -# Build docker nightly release container -cd /go/src/github.com/dotcloud/docker/testing/nightlyrelease; docker build -t dockerbuilder . - -# Self removing -echo -e '#!/bin/sh -e\nexit 0\n' > /etc/rc.local -exit 0 diff --git a/testing/buildbot/setup_credentials.sh b/testing/buildbot/setup_credentials.sh deleted file mode 100755 index 76201bdb65..0000000000 --- a/testing/buildbot/setup_credentials.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -# Setup of test credentials. Called by Vagrantfile -export PATH="/bin:sbin:/usr/bin:/usr/sbin:/usr/local/bin" - -USER=$1 -REGISTRY_USER=$2 -REGISTRY_PWD=$3 - -BUILDBOT_PATH="/data/buildbot" -DOCKER_PATH="/go/src/github.com/dotcloud/docker" - -function run { su $USER -c "$1"; } - -run "cp $DOCKER_PATH/testing/buildbot/credentials.cfg $BUILDBOT_PATH/master" -cd $BUILDBOT_PATH/master -run "sed -i -E 's#(export DOCKER_CREDS=).+#\1\"$REGISTRY_USER:$REGISTRY_PWD\"#' credentials.cfg" diff --git a/testing/functionaltests/test_registry.sh b/testing/functionaltests/test_registry.sh deleted file mode 100755 index 095a731631..0000000000 --- a/testing/functionaltests/test_registry.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -# Cleanup -rm -rf docker-registry - -# Get latest docker registry -git clone https://github.com/dotcloud/docker-registry.git - -# Configure and run registry tests -cd docker-registry; cp config_sample.yml config.yml -cd test; python -m unittest workflow From 53a07d547554adc61b82f3ff794c0c9c0686be73 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Mon, 14 Oct 2013 14:00:01 -0700 Subject: [PATCH 12/48] Prevent docker-ci to test closing PRs --- .../docker-ci/buildbot/github.py | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/hack/infrastructure/docker-ci/buildbot/github.py b/hack/infrastructure/docker-ci/buildbot/github.py index a72f27cc6c..ff6b6c62dd 100644 --- a/hack/infrastructure/docker-ci/buildbot/github.py +++ b/hack/infrastructure/docker-ci/buildbot/github.py @@ -90,12 +90,12 @@ def getChanges(request, options = None): fname = str(datetime.datetime.now()).replace(' ','_').replace(':','-')[:19] open('github_{0}.json'.format(fname),'w').write(json.dumps(json.loads(urllib.unquote(request.args['payload'][0])), sort_keys = True, indent = 2)) - if 'pull_request' in payload: - user = payload['pull_request']['user']['login'] - repo = payload['pull_request']['head']['repo']['name'] - repo_url = payload['pull_request']['head']['repo']['html_url'] - else: - user = payload['repository']['owner']['name'] + if 'pull_request' in payload: + user = payload['pull_request']['user']['login'] + repo = payload['pull_request']['head']['repo']['name'] + repo_url = payload['pull_request']['head']['repo']['html_url'] + else: + user = payload['repository']['owner']['name'] repo = payload['repository']['name'] repo_url = payload['repository']['url'] project = request.args.get('project', None) @@ -119,7 +119,7 @@ def process_change(payload, user, repo, repo_url, project): Hook. """ changes = [] - + newrev = payload['after'] if 'after' in payload else payload['pull_request']['head']['sha'] refname = payload['ref'] if 'ref' in payload else payload['pull_request']['head']['ref'] @@ -134,9 +134,12 @@ def process_change(payload, user, repo, repo_url, project): log.msg("Branch `%s' deleted, ignoring" % branch) return [] else: - if 'pull_request' in payload: - changes = [{ - 'category' : 'github_pullrequest', + if 'pull_request' in payload: + if payload['action'] == 'closed': + log.msg("PR#{} closed, ignoring".format(payload['number'])) + return [] + changes = [{ + 'category' : 'github_pullrequest', 'who' : '{0} - PR#{1}'.format(user,payload['number']), 'files' : [], 'comments' : payload['pull_request']['title'], @@ -146,7 +149,7 @@ def process_change(payload, user, repo, repo_url, project): 'revlink' : '{0}/commit/{1}'.format(repo_url,newrev), 'repository' : repo_url, 'project' : project }] - return changes + return changes for commit in payload['commits']: files = [] if 'added' in commit: @@ -170,4 +173,3 @@ def process_change(payload, user, repo, repo_url, project): project = project) changes.append(chdict) return changes - From a0e5657cb6c795ddc7c124a9dadd10bac26a5ed3 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 15 Oct 2013 00:57:17 -0600 Subject: [PATCH 13/48] Remove @KSid from contrib maintainers for now His availability has been very limited, so I'll take over completely for the short term until he can find more time to help out. --- contrib/MAINTAINERS | 1 - 1 file changed, 1 deletion(-) diff --git a/contrib/MAINTAINERS b/contrib/MAINTAINERS index a710312a05..18e05a3070 100644 --- a/contrib/MAINTAINERS +++ b/contrib/MAINTAINERS @@ -1,2 +1 @@ Tianon Gravi (@tianon) -Kawsar Saiyeed (@KSid) From e99ab1df9758bd7bd819e87bf231399ef8f031d6 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 15 Oct 2013 03:02:31 -0600 Subject: [PATCH 14/48] Move contrib/docker.bash to contrib/completion/bash/docker for better organization --- contrib/{docker.bash => completion/bash/docker} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contrib/{docker.bash => completion/bash/docker} (100%) mode change 100644 => 100755 diff --git a/contrib/docker.bash b/contrib/completion/bash/docker old mode 100644 new mode 100755 similarity index 100% rename from contrib/docker.bash rename to contrib/completion/bash/docker From 9da2b3590e52d7f3409d70f183382cee6d6ff81f Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 15 Oct 2013 03:04:06 -0600 Subject: [PATCH 15/48] Add zsh completion from @felixr with permission See https://github.com/felixr/docker-zsh-completion for the original. See also https://github.com/dotcloud/docker/issues/2202#issuecomment-26313287 Fixes #2202 --- contrib/completion/zsh/_docker | 242 +++++++++++++++++++++++++++++++++ 1 file changed, 242 insertions(+) create mode 100755 contrib/completion/zsh/_docker diff --git a/contrib/completion/zsh/_docker b/contrib/completion/zsh/_docker new file mode 100755 index 0000000000..92acdb13dd --- /dev/null +++ b/contrib/completion/zsh/_docker @@ -0,0 +1,242 @@ +#compdef docker +# +# zsh completion for docker (http://docker.io) +# +# version: 0.2.2 +# author: Felix Riedel +# license: BSD License +# github: https://github.com/felixr/docker-zsh-completion +# + +__parse_docker_list() { + sed -e '/^ID/d' -e 's/[ ]\{2,\}/|/g' -e 's/ \([hdwm]\)\(inutes\|ays\|ours\|eeks\)/\1/' | awk ' BEGIN {FS="|"} { printf("%s:%7s, %s\n", $1, $4, $2)}' +} + +__docker_stoppedcontainers() { + local expl + declare -a stoppedcontainers + stoppedcontainers=(${(f)"$(docker ps -a | grep --color=never 'Exit' | __parse_docker_list )"}) + _describe -t containers-stopped "Stopped Containers" stoppedcontainers +} + +__docker_runningcontainers() { + local expl + declare -a containers + + containers=(${(f)"$(docker ps | __parse_docker_list)"}) + _describe -t containers-active "Running Containers" containers +} + +__docker_containers () { + __docker_stoppedcontainers + __docker_runningcontainers +} + +__docker_images () { + local expl + declare -a images + images=(${(f)"$(docker images | awk '(NR > 1){printf("%s\\:%s\n", $1,$2)}')"}) + images=($images ${(f)"$(docker images | awk '(NR > 1){printf("%s:%-15s in %s\n", $3,$2,$1)}')"}) + _describe -t docker-images "Images" images +} + +__docker_tags() { + local expl + declare -a tags + tags=(${(f)"$(docker images | awk '(NR>1){print $2}'| sort | uniq)"}) + _describe -t docker-tags "tags" tags +} + +__docker_search() { + # declare -a dockersearch + local cache_policy + zstyle -s ":completion:${curcontext}:" cache-policy cache_policy + if [[ -z "$cache_policy" ]]; then + zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy + fi + + local searchterm cachename + searchterm="${words[$CURRENT]%/}" + cachename=_docker-search-$searchterm + + local expl + local -a result + if ( [[ ${(P)+cachename} -eq 0 ]] || _cache_invalid ${cachename#_} ) \ + && ! _retrieve_cache ${cachename#_}; then + _message "Searching for ${searchterm}..." + result=(${(f)"$(docker search ${searchterm} | awk '(NR>2){print $1}')"}) + _store_cache ${cachename#_} result + fi + _wanted dockersearch expl 'Available images' compadd -a result +} + +__docker_caching_policy() +{ + # oldp=( "$1"(Nmh+24) ) # 24 hour + oldp=( "$1"(Nmh+1) ) # 24 hour + (( $#oldp )) +} + + +__docker_repositories () { + local expl + declare -a repos + repos=(${(f)"$(docker images | sed -e '1d' -e 's/[ ].*//' | sort | uniq)"}) + _describe -t docker-repos "Repositories" repos +} + +__docker_commands () { + # local -a _docker_subcommands + local cache_policy + + zstyle -s ":completion:${curcontext}:" cache-policy cache_policy + if [[ -z "$cache_policy" ]]; then + zstyle ":completion:${curcontext}:" cache-policy __docker_caching_policy + fi + + if ( [[ ${+_docker_subcommands} -eq 0 ]] || _cache_invalid docker_subcommands) \ + && ! _retrieve_cache docker_subcommands; + then + _docker_subcommands=(${${(f)"$(_call_program commands + docker 2>&1 | sed -e '1,6d' -e '/^[ ]*$/d' -e 's/[ ]*\([^ ]\+\)\s*\([^ ].*\)/\1:\2/' )"}}) + _docker_subcommands=($_docker_subcommands 'help:Show help for a command') + _store_cache docker_subcommands _docker_subcommands + fi + _describe -t docker-commands "docker command" _docker_subcommands +} + +__docker_subcommand () { + local -a _command_args + case "$words[1]" in + (attach|wait) + _arguments ':containers:__docker_runningcontainers' + ;; + (build) + _arguments \ + '-t=-:repository:__docker_repositories' \ + ':path or URL:_directories' + ;; + (commit) + _arguments \ + ':container:__docker_containers' \ + ':repository:__docker_repositories' \ + ':tag: ' + ;; + (diff|export|logs) + _arguments '*:containers:__docker_containers' + ;; + (history) + _arguments '*:images:__docker_images' + ;; + (images) + _arguments \ + '-a[Show all images]' \ + ':repository:__docker_repositories' + ;; + (inspect) + _arguments '*:containers:__docker_containers' + ;; + (history) + _arguments ':images:__docker_images' + ;; + (insert) + _arguments '1:containers:__docker_containers' \ + '2:URL:(http:// file://)' \ + '3:file:_files' + ;; + (kill) + _arguments '*:containers:__docker_runningcontainers' + ;; + (port) + _arguments '1:containers:__docker_runningcontainers' + ;; + (start) + _arguments '*:containers:__docker_stoppedcontainers' + ;; + (rm) + _arguments '-v[Remove the volumes associated to the container]' \ + '*:containers:__docker_stoppedcontainers' + ;; + (rmi) + _arguments '-v[Remove the volumes associated to the container]' \ + '*:images:__docker_images' + ;; + (top) + _arguments '1:containers:__docker_runningcontainers' + ;; + (restart|stop) + _arguments '-t=-[Number of seconds to try to stop for before killing the container]:seconds to before killing:(1 5 10 30 60)' \ + '*:containers:__docker_runningcontainers' + ;; + (top) + _arguments ':containers:__docker_runningcontainers' + ;; + (ps) + _arguments '-a[Show all containers. Only running containers are shown by default]' \ + '-h[Show help]' \ + '-beforeId=-[Show only container created before Id, include non-running one]:containers:__docker_containers' \ + '-n=-[Show n last created containers, include non-running one]:n:(1 5 10 25 50)' + ;; + (tag) + _arguments \ + '-f[force]'\ + ':image:__docker_images'\ + ':repository:__docker_repositories' \ + ':tag:__docker_tags' + ;; + (run) + _arguments \ + '-a=-[Attach to stdin, stdout or stderr]:toggle:(true false)' \ + '-c=-[CPU shares (relative weight)]:CPU shares: ' \ + '-d[Detached mode: leave the container running in the background]' \ + '*-dns=[Set custom dns servers]:dns server: ' \ + '*-e=[Set environment variables]:environment variable: ' \ + '-entrypoint=-[Overwrite the default entrypoint of the image]:entry point: ' \ + '-h=-[Container host name]:hostname:_hosts' \ + '-i[Keep stdin open even if not attached]' \ + '-m=-[Memory limit (in bytes)]:limit: ' \ + '*-p=-[Expose a container''s port to the host]:port:_ports' \ + '-t=-[Allocate a pseudo-tty]:toggle:(true false)' \ + '-u=-[Username or UID]:user:_users' \ + '*-v=-[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]:volume: '\ + '-volumes-from=-[Mount volumes from the specified container]:volume: ' \ + '(-):images:__docker_images' \ + '(-):command: _command_names -e' \ + '*::arguments: _normal' + ;; + (pull|search) + _arguments ':name:__docker_search' + ;; + (help) + _arguments ':subcommand:__docker_commands' + ;; + (*) + _message 'Unknown sub command' + esac + +} + +_docker () { + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + '-H=-[tcp://host:port to bind/connect to]:socket: ' \ + '(-): :->command' \ + '(-)*:: :->option-or-argument' + + if (( CURRENT == 1 )); then + + fi + case $state in + (command) + __docker_commands + ;; + (option-or-argument) + curcontext=${curcontext%:*:*}:docker-$words[1]: + __docker_subcommand + ;; + esac +} + +_docker "$@" From ace059e409f0df056ace0191b02504d051b81d92 Mon Sep 17 00:00:00 2001 From: Tianon Gravi Date: Tue, 15 Oct 2013 03:35:13 -0600 Subject: [PATCH 16/48] Add vim syntax highlighting for Dockerfiles from @honza See https://github.com/honza/dockerfile.vim See also https://twitter.com/_honza/status/390046317579620352 --- contrib/vim-syntax/LICENSE | 22 +++++++++++++++++++++ contrib/vim-syntax/README.md | 23 ++++++++++++++++++++++ contrib/vim-syntax/doc/dockerfile.txt | 18 +++++++++++++++++ contrib/vim-syntax/ftdetect/dockerfile.vim | 1 + contrib/vim-syntax/syntax/dockerfile.vim | 22 +++++++++++++++++++++ 5 files changed, 86 insertions(+) create mode 100644 contrib/vim-syntax/LICENSE create mode 100644 contrib/vim-syntax/README.md create mode 100644 contrib/vim-syntax/doc/dockerfile.txt create mode 100644 contrib/vim-syntax/ftdetect/dockerfile.vim create mode 100644 contrib/vim-syntax/syntax/dockerfile.vim diff --git a/contrib/vim-syntax/LICENSE b/contrib/vim-syntax/LICENSE new file mode 100644 index 0000000000..e67cdabd22 --- /dev/null +++ b/contrib/vim-syntax/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2013 Honza Pokorny +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/contrib/vim-syntax/README.md b/contrib/vim-syntax/README.md new file mode 100644 index 0000000000..b78246617b --- /dev/null +++ b/contrib/vim-syntax/README.md @@ -0,0 +1,23 @@ +dockerfile.vim +============== + +Syntax highlighting for Dockerfiles + +Installation +------------ + +Via pathogen, the usual way... + +Features +-------- + +The syntax highlighting includes: + +* The directives (e.g. `FROM`) +* Strings +* Comments + +License +------- + +BSD, short and sweet diff --git a/contrib/vim-syntax/doc/dockerfile.txt b/contrib/vim-syntax/doc/dockerfile.txt new file mode 100644 index 0000000000..37cc7be915 --- /dev/null +++ b/contrib/vim-syntax/doc/dockerfile.txt @@ -0,0 +1,18 @@ +*dockerfile.txt* Syntax highlighting for Dockerfiles + +Author: Honza Pokorny +License: BSD + +INSTALLATION *installation* + +Drop it on your Pathogen path and you're all set. + +FEATURES *features* + +The syntax highlighting includes: + +* The directives (e.g. FROM) +* Strings +* Comments + + vim:tw=78:et:ft=help:norl: diff --git a/contrib/vim-syntax/ftdetect/dockerfile.vim b/contrib/vim-syntax/ftdetect/dockerfile.vim new file mode 100644 index 0000000000..83281d3326 --- /dev/null +++ b/contrib/vim-syntax/ftdetect/dockerfile.vim @@ -0,0 +1 @@ +au BufNewFile,BufRead Dockerfile set filetype=dockerfile diff --git a/contrib/vim-syntax/syntax/dockerfile.vim b/contrib/vim-syntax/syntax/dockerfile.vim new file mode 100644 index 0000000000..90e0651b66 --- /dev/null +++ b/contrib/vim-syntax/syntax/dockerfile.vim @@ -0,0 +1,22 @@ +" dockerfile.vim - Syntax highlighting for Dockerfiles +" Maintainer: Honza Pokorny +" Version: 0.5 + + +if exists("b:current_syntax") + finish +endif + +let b:current_syntax = "dockerfile" + +syntax case ignore + +syntax match dockerfileKeyword /\v^\s*(FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD)\s/ +syntax match dockerfileKeyword /\v^\s*(ENTRYPOINT|VOLUME|USER|WORKDIR)\s/ +highlight link dockerfileKeyword Keyword + +syntax region dockerfileString start=/\v"/ skip=/\v\\./ end=/\v"/ +highlight link dockerfileString String + +syntax match dockerfileComment "\v^\s*#.*$" +highlight link dockerfileComment Comment From ca56b35e5334d9f6a6741830951eb1535ca6f9b2 Mon Sep 17 00:00:00 2001 From: Flavio Castelli Date: Tue, 15 Oct 2013 11:44:56 +0200 Subject: [PATCH 17/48] Fixed broken tests Some tests failed because the `auplink` binary was not found inside of the "docker" container. --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index abb8a02828..c19553a315 100644 --- a/Dockerfile +++ b/Dockerfile @@ -57,6 +57,7 @@ run /bin/echo -e '[default]\naccess_key=$AWS_ACCESS_KEY\nsecret_key=$AWS_SECRET_ # Runtime dependencies run apt-get install -y -q iptables run apt-get install -y -q lxc +run apt-get install -y -q aufs-tools volume /var/lib/docker workdir /go/src/github.com/dotcloud/docker From cd455ca6fa3a899153880a7b95b9d07762b4c97c Mon Sep 17 00:00:00 2001 From: Andy Rothfusz Date: Tue, 15 Oct 2013 15:52:21 -0700 Subject: [PATCH 18/48] Fix #1919 document how to edit and release docs. --- CONTRIBUTING.md | 6 ++- docs/README.md | 110 +++++++++++++++++++++++++++++--------- hack/RELEASE-CHECKLIST.md | 22 ++++++-- 3 files changed, 107 insertions(+), 31 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a7d73273ae..43137c67e2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -59,8 +59,10 @@ Submit unit tests for your changes. Go has a great test framework built in; use it! Take a look at existing tests for inspiration. Run the full test suite on your branch before submitting a pull request. -Make sure you include relevant updates or additions to documentation when -creating or modifying features. +Update the documentation when creating or modifying features. Test +your documentation changes for clarity, concision, and correctness, as +well as a clean docmuent build. See ``docs/README.md`` for more +information on building the docs and how docs get released. Write clean code. Universally formatted code promotes ease of writing, reading, and maintenance. Always run `go fmt` before committing your changes. Most diff --git a/docs/README.md b/docs/README.md index d53b8675b9..02572ee11e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,38 +1,93 @@ Docker Documentation ==================== -Documentation -------------- -This is your definite place to contribute to the docker documentation. After each push to master the documentation -is automatically generated and made available on [docs.docker.io](http://docs.docker.io) +Overview +-------- -Each of the .rst files under sources reflects a page on the documentation. +The source for Docker documentation is here under ``sources/`` in the +form of .rst files. These files use +[reStructuredText](http://docutils.sourceforge.net/rst.html) +formatting with [Sphinx](http://sphinx-doc.org/) extensions for +structure, cross-linking and indexing. -Installation ------------- +The HTML files are built and hosted on +[readthedocs.org](https://readthedocs.org/projects/docker/), appearing +via proxy on https://docs.docker.io. The HTML files update +automatically after each change to the master or release branch of the +[docker files on GitHub](https://github.com/dotcloud/docker) thanks to +post-commit hooks. The "release" branch maps to the "latest" +documentation and the "master" branch maps to the "master" +documentation. + +**Warning**: The "master" documentation may include features not yet +part of any official docker release. "Master" docs should be used only +for understanding bleeding-edge development and "latest" should be +used for the latest official release. + +If you need to manually trigger a build of an existing branch, then +you can do that through the [readthedocs +interface](https://readthedocs.org/builds/docker/). If you would like +to add new build targets, including new branches or tags, then you +must contact one of the existing maintainers and get your +readthedocs.org account added to the maintainers list, or just file an +issue on GitHub describing the branch/tag and why it needs to be added +to the docs, and one of the maintainers will add it for you. + +Getting Started +--------------- + +To edit and test the docs, you'll need to install the Sphinx tool and +its dependencies. There are two main ways to install this tool: + +Native Installation +................... -* Work in your own fork of the code, we accept pull requests. * Install sphinx: `pip install sphinx` - * Mac OS X: `[sudo] pip-2.7 install sphinx`) + * Mac OS X: `[sudo] pip-2.7 install sphinx` * Install sphinx httpdomain contrib package: `pip install sphinxcontrib-httpdomain` * Mac OS X: `[sudo] pip-2.7 install sphinxcontrib-httpdomain` * If pip is not available you can probably install it using your favorite package manager as **python-pip** +Alternative Installation: Docker Container +.......................................... + +If you're running ``docker`` on your development machine then you may +find it easier and cleaner to use the Dockerfile. This installs Sphinx +in a container, adds the local ``docs/`` directory and builds the HTML +docs inside the container, even starting a simple HTTP server on port +8000 so that you can connect and see your changes. Just run ``docker +build .`` and run the resulting image. This is the equivalent to +``make clean server`` since each container starts clean. + Usage ----- -* Change the `.rst` files with your favorite editor to your liking. -* Run `make docs` to clean up old files and generate new ones. -* Your static website can now be found in the `_build` directory. -* To preview what you have generated run `make server` and open http://localhost:8000/ in your favorite browser. +* Follow the contribution guidelines (``../CONTRIBUTING.md``) +* Work in your own fork of the code, we accept pull requests. +* Change the ``.rst`` files with your favorite editor -- try to keep the + lines short and respect RST and Sphinx conventions. +* Run ``make clean docs`` to clean up old files and generate new ones, + or just ``make docs`` to update after small changes. +* Your static website can now be found in the ``_build`` directory. +* To preview what you have generated run ``make server`` and open + http://localhost:8000/ in your favorite browser. + +``make clean docs`` must complete without any warnings or errors. Working using GitHub's file editor ---------------------------------- -Alternatively, for small changes and typo's you might want to use GitHub's built in file editor. It allows -you to preview your changes right online. Just be careful not to create many commits. + +Alternatively, for small changes and typos you might want to use +GitHub's built in file editor. It allows you to preview your changes +right online (though there can be some differences between GitHub +markdown and Sphinx RST). Just be careful not to create many commits. Images ------ -When you need to add images, try to make them as small as possible (e.g. as gif). + +When you need to add images, try to make them as small as possible +(e.g. as gif). Usually images should go in the same directory as the +.rst file which references them, or in a subdirectory if one already +exists. Notes ----- @@ -41,7 +96,7 @@ lessc ``lessc main.less`` or watched using watch-lessc ``watch-lessc -i main.les Guides on using sphinx ---------------------- -* To make links to certain pages create a link target like so: +* To make links to certain sections create a link target like so: ``` .. _hello_world: @@ -52,7 +107,10 @@ Guides on using sphinx This is.. (etc.) ``` - The ``_hello_world:`` will make it possible to link to this position (page and marker) from all other pages. + The ``_hello_world:`` will make it possible to link to this position + (page and section heading) from all other pages. See the [Sphinx + docs](http://sphinx-doc.org/markup/inline.html#role-ref) for more + information and examples. * Notes, warnings and alarms @@ -68,13 +126,17 @@ Guides on using sphinx * Code examples - Start without $, so it's easy to copy and paste. + * Start without $, so it's easy to copy and paste. + * Use "sudo" with docker to ensure that your command is runnable + even if they haven't [used the *docker* + group](http://docs.docker.io/en/latest/use/basics/#why-sudo). Manpages -------- -* To make the manpages, simply run 'make man'. Please note there is a bug in spinx 1.1.3 which makes this fail. -Upgrade to the latest version of sphinx. -* Then preview the manpage by running `man _build/man/docker.1`, where _build/man/docker.1 is the path to the generated -manfile -* The manpages are also autogenerated by our hosted readthedocs here: http://docs-docker.dotcloud.com/projects/docker/downloads/ +* To make the manpages, run ``make man``. Please note there is a bug + in spinx 1.1.3 which makes this fail. Upgrade to the latest version + of Sphinx. +* Then preview the manpage by running ``man _build/man/docker.1``, + where ``_build/man/docker.1`` is the path to the generated manfile + diff --git a/hack/RELEASE-CHECKLIST.md b/hack/RELEASE-CHECKLIST.md index 0adbdba6dd..5f873c6c5c 100644 --- a/hack/RELEASE-CHECKLIST.md +++ b/hack/RELEASE-CHECKLIST.md @@ -57,7 +57,13 @@ EXAMPLES: FIXME -### 5. Commit and create a pull request to the "release" branch +### 5. Test the docs + +Make sure that your tree includes documentation for any modified or +new features, syntax or semantic changes. Instructions for building +the docs are in ``docs/README.md`` + +### 6. Commit and create a pull request to the "release" branch ```bash git add CHANGELOG.md @@ -65,9 +71,9 @@ git commit -m "Bump version to $VERSION" git push origin bump_$VERSION ``` -### 6. Get 2 other maintainers to validate the pull request +### 7. Get 2 other maintainers to validate the pull request -### 7. Merge the pull request and apply tags +### 8. Merge the pull request and apply tags ```bash git checkout release @@ -78,7 +84,13 @@ git push git push --tags ``` -### 8. Publish binaries +Merging the pull request to the release branch will automatically +update the documentation on the "latest" revision of the docs. You +should see the updated docs 5-10 minutes after the merge. The docs +will appear on http://docs.docker.io/. For more information about +documentation releases, see ``docs/README.md`` + +### 9. Publish binaries To run this you will need access to the release credentials. Get them from [the infrastructure maintainers]( @@ -100,6 +112,6 @@ use get-nightly.docker.io for general testing, and once everything is fine, switch to get.docker.io). -### 9. Rejoice! +### 10. Rejoice! Congratulations! You're done. From b7abe9dab56f79e410ef2821cbea6344a65b555b Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Tue, 15 Oct 2013 21:54:52 +0000 Subject: [PATCH 19/48] hack: only run certain tests with TESTFLAGS='-run TestName' make.sh --- hack/make/test | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hack/make/test b/hack/make/test index 9334c8b313..c09727702d 100644 --- a/hack/make/test +++ b/hack/make/test @@ -3,13 +3,18 @@ DEST=$1 set -e # Run Docker's test suite, including sub-packages, and store their output as a bundle +# If $TESTFLAGS is set in the environment, it is passed as extra arguments to 'go test'. +# You can use this to select certain tests to run, eg. +# +# TESTFLAGS='-run ^TestBuild$' ./hack/make.sh test +# bundle_test() { { date for test_dir in $(find_test_dirs); do ( set -x cd $test_dir - go test -v -ldflags "$LDFLAGS" + go test -v -ldflags "$LDFLAGS" $TESTFLAGS ) done } 2>&1 | tee $DEST/test.log } From cbc49d7d76dfc9e259d5227a0077a83e5faf1202 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Tue, 15 Oct 2013 23:12:27 +0000 Subject: [PATCH 20/48] Remove error messages which are not actually errors --- buildfile.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildfile.go b/buildfile.go index db1fdf9e72..64f04b3a3a 100644 --- a/buildfile.go +++ b/buildfile.go @@ -296,7 +296,7 @@ func (b *buildFile) addContext(container *Container, orig, dest string) error { } // First try to unpack the source as an archive } else if err := UntarPath(origPath, destPath); err != nil { - utils.Errorf("Couldn't untar %s to %s: %s", origPath, destPath, err) + utils.Debugf("Couldn't untar %s to %s: %s", origPath, destPath, err) // If that fails, just copy it as a regular file if err := os.MkdirAll(path.Dir(destPath), 0755); err != nil { return err From ee7d9b0bdec40d02ba5ef25f557cca9444a19669 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 00:31:34 +0000 Subject: [PATCH 21/48] Update Dockerfile test comment --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index c19553a315..67963c836b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -12,7 +12,7 @@ # # # # Run the test suite: -# docker run -privileged -lxc-conf=lxc.aa_profile=unconfined docker go test -v +# docker run -privileged -lxc-conf=lxc.aa_profile=unconfined docker hack/make.sh test # # # Publish a release: # docker run -privileged -lxc-conf=lxc.aa_profile=unconfined \ From 7250f9487463ae50d73865a4d02caec611e613ad Mon Sep 17 00:00:00 2001 From: Sven Dowideit Date: Tue, 15 Oct 2013 22:19:07 +1000 Subject: [PATCH 22/48] #2209 - add the example @tianon gave to elaborate on the Comment documentation --- docs/sources/use/builder.rst | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/sources/use/builder.rst b/docs/sources/use/builder.rst index fedae17389..60f5d50a65 100644 --- a/docs/sources/use/builder.rst +++ b/docs/sources/use/builder.rst @@ -54,8 +54,14 @@ Docker evaluates the instructions in a Dockerfile in order. **The first instruction must be `FROM`** in order to specify the :ref:`base_image_def` from which you are building. -Docker will ignore **comment lines** *beginning* with ``#``. A comment -marker anywhere in the rest of the line will be treated as an argument. +Docker will treat lines that *begin* with ``#`` as a comment. A ``#`` +marker anywhere else in the line will be treated as an argument. This +allows statements like: + +:: + + # Comment + RUN echo 'we are running some # of cool things' 3. Instructions =============== From d94a027da6fc75e856b31246de0b4a49206e942b Mon Sep 17 00:00:00 2001 From: Travis Cline Date: Tue, 15 Oct 2013 23:09:02 +0000 Subject: [PATCH 23/48] Add mkimage-arch.sh --- contrib/mkimage-arch.sh | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100755 contrib/mkimage-arch.sh diff --git a/contrib/mkimage-arch.sh b/contrib/mkimage-arch.sh new file mode 100755 index 0000000000..cdc3c273d8 --- /dev/null +++ b/contrib/mkimage-arch.sh @@ -0,0 +1,65 @@ +#!/bin/bash +# Generate a minimal filesystem for archlinux and load it into the local +# docker as "archlinux" +# requires root +set -e + +PACSTRAP=$(which pacstrap) +[ "$PACSTRAP" ] || { + echo "Could not find pacstrap. Run pacman -S arch-install-scripts" + exit 1 +} +EXPECT=$(which expect) +[ "$EXPECT" ] || { + echo "Could not find expect. Run pacman -S expect" + exit 1 +} + +ROOTFS=~/rootfs-arch-$$-$RANDOM +mkdir $ROOTFS + +#packages to ignore for space savings +PKGIGNORE=linux,jfsutils,lvm2,cryptsetup,groff,man-db,man-pages,mdadm,pciutils,pcmciautils,reiserfsprogs,s-nail,xfsprogs + +expect -c " + set timeout 60 + spawn pacstrap -c -d -G -i $ROOTFS base haveged --ignore $PKGIGNORE + expect { + \"Install anyway\" { send "n\\r"; exp_continue } + \"(default=all)\" { send "\\r"; exp_continue } + \"Proceed with installation?\" { send "\\r"; exp_continue } + \"skip the above package\" {send "y\\r"; exp_continue } + \"checking\" { exp_continue } + \"loading\" { exp_continue } + \"installing\" { exp_continue } + }" + +arch-chroot $ROOTFS /bin/sh -c "haveged -w 1024; pacman-key --init; pkill haveged; pacman -Rs --noconfirm haveged; pacman-key --populate archlinux" +arch-chroot $ROOTFS /bin/sh -c "ln -s /usr/share/zoneinfo/UTC /etc/localtime" +cat > $ROOTFS/etc/locale.gen < /etc/pacman.d/mirrorlist' + +# udev doesn't work in containers, rebuild /dev +DEV=${ROOTFS}/dev +mv ${DEV} ${DEV}.old +mkdir -p ${DEV} +mknod -m 666 ${DEV}/null c 1 3 +mknod -m 666 ${DEV}/zero c 1 5 +mknod -m 666 ${DEV}/random c 1 8 +mknod -m 666 ${DEV}/urandom c 1 9 +mkdir -m 755 ${DEV}/pts +mkdir -m 1777 ${DEV}/shm +mknod -m 666 ${DEV}/tty c 5 0 +mknod -m 600 ${DEV}/console c 5 1 +mknod -m 666 ${DEV}/tty0 c 4 0 +mknod -m 666 ${DEV}/full c 1 7 +mknod -m 600 ${DEV}/initctl p +mknod -m 666 ${DEV}/ptmx c 5 2 + +tar -C $ROOTFS -c . | docker import - archlinux +docker run -i -t archlinux echo Success. +rm -rf $ROOTFS From e32debcf5fb6bf056a871930a8a88d545653e96f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Wed, 16 Oct 2013 10:58:53 -0700 Subject: [PATCH 24/48] Add better comments to utils/stdcopy.go. --- utils/stdcopy.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/utils/stdcopy.go b/utils/stdcopy.go index 42dad738e4..3cb8ab02b3 100644 --- a/utils/stdcopy.go +++ b/utils/stdcopy.go @@ -37,8 +37,12 @@ func (w *StdWriter) Write(buf []byte) (n int, err error) { return n - StdWriterPrefixLen, err } -// NewStdWriter instanciate a new Writer based on the given type `t`. -// the utils package contains the valid parametres for `t`: +// NewStdWriter instanciates a new Writer. +// Everything written to it will be encapsulated using a custom format, +// and written to the underlying `w` stream. +// This allows multiple write streams (e.g. stdout and stderr) to be muxed into a single connection. +// `t` indicates the id of the stream to encapsulate. +// It can be utils.Stdin, utils.Stdout, utils.Stderr. func NewStdWriter(w io.Writer, t StdType) *StdWriter { if len(t) != StdWriterPrefixLen { return nil @@ -55,16 +59,14 @@ var ErrInvalidStdHeader = errors.New("Unrecognized input header") // StdCopy is a modified version of io.Copy. // -// StdCopy copies from src to dstout or dsterr until either EOF is reached -// on src or an error occurs. It returns the number of bytes -// copied and the first error encountered while copying, if any. +// StdCopy will demultiplex `src`, assuming that it contains two streams, +// previously multiplexed together using a StdWriter instance. +// As it reads from `src`, StdCopy will write to `dstout` and `dsterr`. // -// A successful Copy returns err == nil, not err == EOF. -// Because Copy is defined to read from src until EOF, it does -// not treat an EOF from Read as an error to be reported. +// StdCopy will read until it hits EOF on `src`. It will then return a nil error. +// In other words: if `err` is non nil, it indicates a real underlying error. // -// The source needs to be writter via StdWriter, dstout or dsterr is selected -// based on the prefix added by StdWriter +// `written` will hold the total number of bytes written to `dstout` and `dsterr`. func StdCopy(dstout, dsterr io.Writer, src io.Reader) (written int64, err error) { var ( buf = make([]byte, 32*1024+StdWriterPrefixLen+1) From f854529ae8c9e0139e9ca0466c597b133e3bf41e Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 18:06:37 +0000 Subject: [PATCH 25/48] add cleanupin tests to remove leftover containers --- runtime_test.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/runtime_test.go b/runtime_test.go index 93fabb206a..1abbcc51e6 100644 --- a/runtime_test.go +++ b/runtime_test.go @@ -94,6 +94,13 @@ func init() { globalRuntime = runtime } + // Cleanup any leftover container + for _, container := range globalRuntime.List() { + if err := globalRuntime.Destroy(container); err != nil { + log.Fatalf("Error destroying leftover container: %s", err) + } + } + // Create the "Server" srv := &Server{ runtime: globalRuntime, From fc659b68e4cd4f1a07a9fe37be4ebcb8e030a652 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Wed, 16 Oct 2013 10:41:36 -0700 Subject: [PATCH 26/48] Fix error/debug messages in Container.Attach and recover from ErrClosedPipe conditions. --- container.go | 77 ++++++++++++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 32 deletions(-) diff --git a/container.go b/container.go index 01348d30a8..06250e7994 100644 --- a/container.go +++ b/container.go @@ -390,9 +390,9 @@ func (container *Container) startPty() error { // Copy the PTYs to our broadcasters go func() { defer container.stdout.CloseWriters() - utils.Debugf("[startPty] Begin of stdout pipe") + utils.Debugf("startPty: begin of stdout pipe") io.Copy(container.stdout, ptyMaster) - utils.Debugf("[startPty] End of stdout pipe") + utils.Debugf("startPty: end of stdout pipe") }() // stdin @@ -401,9 +401,9 @@ func (container *Container) startPty() error { container.cmd.SysProcAttr.Setctty = true go func() { defer container.stdin.Close() - utils.Debugf("[startPty] Begin of stdin pipe") + utils.Debugf("startPty: begin of stdin pipe") io.Copy(ptyMaster, container.stdin) - utils.Debugf("[startPty] End of stdin pipe") + utils.Debugf("startPty: end of stdin pipe") }() } if err := container.cmd.Start(); err != nil { @@ -423,9 +423,9 @@ func (container *Container) start() error { } go func() { defer stdin.Close() - utils.Debugf("Begin of stdin pipe [start]") + utils.Debugf("start: begin of stdin pipe") io.Copy(stdin, container.stdin) - utils.Debugf("End of stdin pipe [start]") + utils.Debugf("start: end of stdin pipe") }() } return container.cmd.Start() @@ -442,8 +442,8 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s errors <- err } else { go func() { - utils.Debugf("[start] attach stdin\n") - defer utils.Debugf("[end] attach stdin\n") + utils.Debugf("attach: stdin: begin") + defer utils.Debugf("attach: stdin: end") // No matter what, when stdin is closed (io.Copy unblock), close stdout and stderr if container.Config.StdinOnce && !container.Config.Tty { defer cStdin.Close() @@ -461,7 +461,7 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s _, err = io.Copy(cStdin, stdin) } if err != nil { - utils.Errorf("[error] attach stdin: %s\n", err) + utils.Errorf("attach: stdin: %s", err) } // Discard error, expecting pipe error errors <- nil @@ -475,8 +475,8 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s } else { cStdout = p go func() { - utils.Debugf("[start] attach stdout\n") - defer utils.Debugf("[end] attach stdout\n") + utils.Debugf("attach: stdout: begin") + defer utils.Debugf("attach: stdout: end") // If we are in StdinOnce mode, then close stdin if container.Config.StdinOnce && stdin != nil { defer stdin.Close() @@ -485,8 +485,11 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s defer stdinCloser.Close() } _, err := io.Copy(stdout, cStdout) + if err == io.ErrClosedPipe { + err = nil + } if err != nil { - utils.Errorf("[error] attach stdout: %s\n", err) + utils.Errorf("attach: stdout: %s", err) } errors <- err }() @@ -496,9 +499,8 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s if stdinCloser != nil { defer stdinCloser.Close() } - if cStdout, err := container.StdoutPipe(); err != nil { - utils.Errorf("Error stdout pipe") + utils.Errorf("attach: stdout pipe: %s", err) } else { io.Copy(&utils.NopWriter{}, cStdout) } @@ -511,8 +513,8 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s } else { cStderr = p go func() { - utils.Debugf("[start] attach stderr\n") - defer utils.Debugf("[end] attach stderr\n") + utils.Debugf("attach: stderr: begin") + defer utils.Debugf("attach: stderr: end") // If we are in StdinOnce mode, then close stdin if container.Config.StdinOnce && stdin != nil { defer stdin.Close() @@ -521,8 +523,11 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s defer stdinCloser.Close() } _, err := io.Copy(stderr, cStderr) + if err == io.ErrClosedPipe { + err = nil + } if err != nil { - utils.Errorf("[error] attach stderr: %s\n", err) + utils.Errorf("attach: stderr: %s", err) } errors <- err }() @@ -534,7 +539,7 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s } if cStderr, err := container.StderrPipe(); err != nil { - utils.Errorf("Error stdout pipe") + utils.Errorf("attach: stdout pipe: %s", err) } else { io.Copy(&utils.NopWriter{}, cStderr) } @@ -548,17 +553,17 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s if cStderr != nil { defer cStderr.Close() } - // FIXME: how do clean up the stdin goroutine without the unwanted side effect + // FIXME: how to clean up the stdin goroutine without the unwanted side effect // of closing the passed stdin? Add an intermediary io.Pipe? for i := 0; i < nJobs; i += 1 { - utils.Debugf("Waiting for job %d/%d\n", i+1, nJobs) + utils.Debugf("attach: waiting for job %d/%d", i+1, nJobs) if err := <-errors; err != nil { - utils.Errorf("Job %d returned error %s. Aborting all jobs\n", i+1, err) + utils.Errorf("attach: job %d returned error %s, aborting all jobs", i+1, err) return err } - utils.Debugf("Job %d completed successfully\n", i+1) + utils.Debugf("attach: job %d completed successfully", i+1) } - utils.Debugf("All jobs completed successfully\n") + utils.Debugf("attach: all jobs completed successfully") return nil }) } @@ -849,9 +854,14 @@ func (container *Container) Output() (output []byte, err error) { return output, err } -// StdinPipe() returns a pipe connected to the standard input of the container's -// active process. -// +// Container.StdinPipe returns a WriteCloser which can be used to feed data +// to the standard input of the container's active process. +// Container.StdoutPipe and Container.StderrPipe each return a ReadCloser +// which can be used to retrieve the standard output (and error) generated +// by the container's active process. The output (and error) are actually +// copied and delivered to all StdoutPipe and StderrPipe consumers, using +// a kind of "broadcaster". + func (container *Container) StdinPipe() (io.WriteCloser, error) { return container.stdinPipe, nil } @@ -953,20 +963,23 @@ func (container *Container) waitLxc() error { func (container *Container) monitor(hostConfig *HostConfig) { // Wait for the program to exit - utils.Debugf("Waiting for process") - // If the command does not exists, try to wait via lxc + // If the command does not exist, try to wait via lxc + // (This probably happens only for ghost containers, i.e. containers that were running when Docker started) if container.cmd == nil { + utils.Debugf("monitor: waiting for container %s using waitLxc", container.ID) if err := container.waitLxc(); err != nil { - utils.Errorf("%s: Process: %s", container.ID, err) + utils.Errorf("monitor: while waiting for container %s, waitLxc had a problem: %s", container.ID, err) } } else { + utils.Debugf("monitor: waiting for container %s using cmd.Wait", container.ID) if err := container.cmd.Wait(); err != nil { - // Discard the error as any signals or non 0 returns will generate an error - utils.Errorf("%s: Process: %s", container.ID, err) + // Since non-zero exit status and signal terminations will cause err to be non-nil, + // we have to actually discard it. Still, log it anyway, just in case. + utils.Debugf("monitor: cmd.Wait reported exit status %s for container %s", err, container.ID) } } - utils.Debugf("Process finished") + utils.Debugf("monitor: container %s finished", container.ID) exitCode := -1 if container.cmd != nil { From df697b4318f533556a2e9351d5995b2d1991ae5a Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 19:23:47 +0000 Subject: [PATCH 27/48] use httpError in a separate test --- api_test.go | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/api_test.go b/api_test.go index bcf662e9e7..83ece7859c 100644 --- a/api_test.go +++ b/api_test.go @@ -5,6 +5,7 @@ import ( "bufio" "bytes" "encoding/json" + "fmt" "github.com/dotcloud/docker/utils" "io" "net" @@ -12,6 +13,7 @@ import ( "net/http/httptest" "os" "path" + "strings" "testing" "time" ) @@ -40,6 +42,25 @@ func TestGetBoolParam(t *testing.T) { } } +func TesthttpError(t *testing.T) { + r := httptest.NewRecorder() + + httpError(r, fmt.Errorf("No such method")) + if r.Code != http.StatusNotFound { + t.Fatalf("Expected %d, got %d", http.StatusNotFound, r.Code) + } + + httpError(r, fmt.Errorf("This accound hasn't been activated")) + if r.Code != http.StatusForbidden { + t.Fatalf("Expected %d, got %d", http.StatusForbidden, r.Code) + } + + httpError(r, fmt.Errorf("Some error")) + if r.Code != http.StatusInternalServerError { + t.Fatalf("Expected %d, got %d", http.StatusInternalServerError, r.Code) + } +} + func TestGetVersion(t *testing.T) { var err error runtime := mkRuntime(t) @@ -243,7 +264,11 @@ func TestGetImagesJSON(t *testing.T) { t.Fatalf("Error expected, received none") } - httpError(r4, err) + if !strings.HasPrefix(err.Error(), "Bad parameter") { + t.Fatalf("Error should starts with \"Bad parameter\"") + } + http.Error(r4, err.Error(), http.StatusBadRequest) + if r4.Code != http.StatusBadRequest { t.Fatalf("%d Bad Request expected, received %d\n", http.StatusBadRequest, r4.Code) } From 104a86936ab2611d6e8e54f5ef686f2e9d231bcf Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 19:32:03 +0000 Subject: [PATCH 28/48] api.go:108 Error parsing media type: error: mime: no media type fix --- api_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api_test.go b/api_test.go index 83ece7859c..fcb3bc8593 100644 --- a/api_test.go +++ b/api_test.go @@ -801,6 +801,8 @@ func TestPostContainersStart(t *testing.T) { t.Fatal(err) } + req.Header.Set("Content-Type", "application/json") + r := httptest.NewRecorder() if err := postContainersStart(srv, APIVERSION, r, req, map[string]string{"name": container.ID}); err != nil { t.Fatal(err) From 0e64a4d7e7d5dd7c68ecc1df9fe8234938f12026 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 19:38:12 +0000 Subject: [PATCH 29/48] remove false alarm error --- api.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api.go b/api.go index 7b6825e804..26ed814739 100644 --- a/api.go +++ b/api.go @@ -349,7 +349,7 @@ func postCommit(srv *Server, version float64, w http.ResponseWriter, r *http.Req return err } config := &Config{} - if err := json.NewDecoder(r.Body).Decode(config); err != nil { + if err := json.NewDecoder(r.Body).Decode(config); err != nil && err.Error() != "EOF" { utils.Errorf("%s", err) } repo := r.Form.Get("repo") From 3acfc600285dedd2e10a3780e041af0cc39675a7 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 19:41:01 +0000 Subject: [PATCH 30/48] change an errorf to a debugf --- api.go | 2 +- buildfile.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api.go b/api.go index 26ed814739..ad308335cc 100644 --- a/api.go +++ b/api.go @@ -349,7 +349,7 @@ func postCommit(srv *Server, version float64, w http.ResponseWriter, r *http.Req return err } config := &Config{} - if err := json.NewDecoder(r.Body).Decode(config); err != nil && err.Error() != "EOF" { + if err := json.NewDecoder(r.Body).Decode(config); err != nil && err != io.EOF { utils.Errorf("%s", err) } repo := r.Form.Get("repo") diff --git a/buildfile.go b/buildfile.go index 64f04b3a3a..8231287eaf 100644 --- a/buildfile.go +++ b/buildfile.go @@ -176,7 +176,7 @@ func (b *buildFile) CmdEnv(args string) error { func (b *buildFile) CmdCmd(args string) error { var cmd []string if err := json.Unmarshal([]byte(args), &cmd); err != nil { - utils.Errorf("Error unmarshalling: %s, setting cmd to /bin/sh -c", err) + utils.Debugf("Error unmarshalling: %s, setting cmd to /bin/sh -c", err) cmd = []string{"/bin/sh", "-c", args} } if err := b.commit("", cmd, fmt.Sprintf("CMD %v", cmd)); err != nil { From 664acd29718ba367cdbad17ec7ee83d1fe01b7e4 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 19:01:55 +0000 Subject: [PATCH 31/48] Add clean if start fail --- container.go | 484 ++++++++++++++++++++++++++------------------------- 1 file changed, 248 insertions(+), 236 deletions(-) diff --git a/container.go b/container.go index 01348d30a8..0dedf9914d 100644 --- a/container.go +++ b/container.go @@ -567,262 +567,270 @@ func (container *Container) Start(hostConfig *HostConfig) error { container.State.Lock() defer container.State.Unlock() - if hostConfig == nil { // in docker start of docker restart we want to reuse previous HostConfigFile - hostConfig, _ = container.ReadHostConfig() - } + startFct := func(hostConfig *HostConfig) error { - if container.State.Running { - return fmt.Errorf("The container %s is already running.", container.ID) - } - if err := container.EnsureMounted(); err != nil { - return err - } - if container.runtime.networkManager.disabled { - container.Config.NetworkDisabled = true - } else { - if err := container.allocateNetwork(); err != nil { + if hostConfig == nil { // in docker start of docker restart we want to reuse previous HostConfigFile + hostConfig, _ = container.ReadHostConfig() + } + + if container.State.Running { + return fmt.Errorf("The container %s is already running.", container.ID) + } + if err := container.EnsureMounted(); err != nil { return err } - } - - // Make sure the config is compatible with the current kernel - if container.Config.Memory > 0 && !container.runtime.capabilities.MemoryLimit { - log.Printf("WARNING: Your kernel does not support memory limit capabilities. Limitation discarded.\n") - container.Config.Memory = 0 - } - if container.Config.Memory > 0 && !container.runtime.capabilities.SwapLimit { - log.Printf("WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.\n") - container.Config.MemorySwap = -1 - } - - if container.runtime.capabilities.IPv4ForwardingDisabled { - log.Printf("WARNING: IPv4 forwarding is disabled. Networking will not work") - } - - // Create the requested bind mounts - binds := make(map[string]BindMap) - // Define illegal container destinations - illegalDsts := []string{"/", "."} - - for _, bind := range hostConfig.Binds { - // FIXME: factorize bind parsing in parseBind - var src, dst, mode string - arr := strings.Split(bind, ":") - if len(arr) == 2 { - src = arr[0] - dst = arr[1] - mode = "rw" - } else if len(arr) == 3 { - src = arr[0] - dst = arr[1] - mode = arr[2] + if container.runtime.networkManager.disabled { + container.Config.NetworkDisabled = true } else { - return fmt.Errorf("Invalid bind specification: %s", bind) - } - - // Bail if trying to mount to an illegal destination - for _, illegal := range illegalDsts { - if dst == illegal { - return fmt.Errorf("Illegal bind destination: %s", dst) + if err := container.allocateNetwork(); err != nil { + return err } } - bindMap := BindMap{ - SrcPath: src, - DstPath: dst, - Mode: mode, + // Make sure the config is compatible with the current kernel + if container.Config.Memory > 0 && !container.runtime.capabilities.MemoryLimit { + log.Printf("WARNING: Your kernel does not support memory limit capabilities. Limitation discarded.\n") + container.Config.Memory = 0 + } + if container.Config.Memory > 0 && !container.runtime.capabilities.SwapLimit { + log.Printf("WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.\n") + container.Config.MemorySwap = -1 } - binds[path.Clean(dst)] = bindMap - } - if container.Volumes == nil || len(container.Volumes) == 0 { - container.Volumes = make(map[string]string) - container.VolumesRW = make(map[string]bool) - } + if container.runtime.capabilities.IPv4ForwardingDisabled { + log.Printf("WARNING: IPv4 forwarding is disabled. Networking will not work") + } - // Apply volumes from another container if requested - if container.Config.VolumesFrom != "" { - volumes := strings.Split(container.Config.VolumesFrom, ",") - for _, v := range volumes { - c := container.runtime.Get(v) - if c == nil { - return fmt.Errorf("Container %s not found. Impossible to mount its volumes", container.ID) + // Create the requested bind mounts + binds := make(map[string]BindMap) + // Define illegal container destinations + illegalDsts := []string{"/", "."} + + for _, bind := range hostConfig.Binds { + // FIXME: factorize bind parsing in parseBind + var src, dst, mode string + arr := strings.Split(bind, ":") + if len(arr) == 2 { + src = arr[0] + dst = arr[1] + mode = "rw" + } else if len(arr) == 3 { + src = arr[0] + dst = arr[1] + mode = arr[2] + } else { + return fmt.Errorf("Invalid bind specification: %s", bind) } - for volPath, id := range c.Volumes { - if _, exists := container.Volumes[volPath]; exists { - continue - } - if err := os.MkdirAll(path.Join(container.RootfsPath(), volPath), 0755); err != nil { - return err - } - container.Volumes[volPath] = id - if isRW, exists := c.VolumesRW[volPath]; exists { - container.VolumesRW[volPath] = isRW + + // Bail if trying to mount to an illegal destination + for _, illegal := range illegalDsts { + if dst == illegal { + return fmt.Errorf("Illegal bind destination: %s", dst) } } - } - } - - // Create the requested volumes if they don't exist - for volPath := range container.Config.Volumes { - volPath = path.Clean(volPath) - // Skip existing volumes - if _, exists := container.Volumes[volPath]; exists { - continue - } - var srcPath string - var isBindMount bool - srcRW := false - // If an external bind is defined for this volume, use that as a source - if bindMap, exists := binds[volPath]; exists { - isBindMount = true - srcPath = bindMap.SrcPath - if strings.ToLower(bindMap.Mode) == "rw" { - srcRW = true + bindMap := BindMap{ + SrcPath: src, + DstPath: dst, + Mode: mode, } - // Otherwise create an directory in $ROOT/volumes/ and use that - } else { - c, err := container.runtime.volumes.Create(nil, container, "", "", nil) - if err != nil { - return err - } - srcPath, err = c.layer() - if err != nil { - return err - } - srcRW = true // RW by default - } - container.Volumes[volPath] = srcPath - container.VolumesRW[volPath] = srcRW - // Create the mountpoint - rootVolPath := path.Join(container.RootfsPath(), volPath) - if err := os.MkdirAll(rootVolPath, 0755); err != nil { - return nil + binds[path.Clean(dst)] = bindMap } - // Do not copy or change permissions if we are mounting from the host - if srcRW && !isBindMount { - volList, err := ioutil.ReadDir(rootVolPath) - if err != nil { - return err + if container.Volumes == nil || len(container.Volumes) == 0 { + container.Volumes = make(map[string]string) + container.VolumesRW = make(map[string]bool) + } + + // Apply volumes from another container if requested + if container.Config.VolumesFrom != "" { + volumes := strings.Split(container.Config.VolumesFrom, ",") + for _, v := range volumes { + c := container.runtime.Get(v) + if c == nil { + return fmt.Errorf("Container %s not found. Impossible to mount its volumes", container.ID) + } + for volPath, id := range c.Volumes { + if _, exists := container.Volumes[volPath]; exists { + continue + } + if err := os.MkdirAll(path.Join(container.RootfsPath(), volPath), 0755); err != nil { + return err + } + container.Volumes[volPath] = id + if isRW, exists := c.VolumesRW[volPath]; exists { + container.VolumesRW[volPath] = isRW + } + } + } - if len(volList) > 0 { - srcList, err := ioutil.ReadDir(srcPath) + } + + // Create the requested volumes if they don't exist + for volPath := range container.Config.Volumes { + volPath = path.Clean(volPath) + // Skip existing volumes + if _, exists := container.Volumes[volPath]; exists { + continue + } + var srcPath string + var isBindMount bool + srcRW := false + // If an external bind is defined for this volume, use that as a source + if bindMap, exists := binds[volPath]; exists { + isBindMount = true + srcPath = bindMap.SrcPath + if strings.ToLower(bindMap.Mode) == "rw" { + srcRW = true + } + // Otherwise create an directory in $ROOT/volumes/ and use that + } else { + c, err := container.runtime.volumes.Create(nil, container, "", "", nil) if err != nil { return err } - if len(srcList) == 0 { - // If the source volume is empty copy files from the root into the volume - if err := CopyWithTar(rootVolPath, srcPath); err != nil { - return err - } + srcPath, err = c.layer() + if err != nil { + return err + } + srcRW = true // RW by default + } + container.Volumes[volPath] = srcPath + container.VolumesRW[volPath] = srcRW + // Create the mountpoint + rootVolPath := path.Join(container.RootfsPath(), volPath) + if err := os.MkdirAll(rootVolPath, 0755); err != nil { + return nil + } - var stat syscall.Stat_t - if err := syscall.Stat(rootVolPath, &stat); err != nil { + // Do not copy or change permissions if we are mounting from the host + if srcRW && !isBindMount { + volList, err := ioutil.ReadDir(rootVolPath) + if err != nil { + return err + } + if len(volList) > 0 { + srcList, err := ioutil.ReadDir(srcPath) + if err != nil { return err } - var srcStat syscall.Stat_t - if err := syscall.Stat(srcPath, &srcStat); err != nil { - return err - } - // Change the source volume's ownership if it differs from the root - // files that where just copied - if stat.Uid != srcStat.Uid || stat.Gid != srcStat.Gid { - if err := os.Chown(srcPath, int(stat.Uid), int(stat.Gid)); err != nil { + if len(srcList) == 0 { + // If the source volume is empty copy files from the root into the volume + if err := CopyWithTar(rootVolPath, srcPath); err != nil { return err } + + var stat syscall.Stat_t + if err := syscall.Stat(rootVolPath, &stat); err != nil { + return err + } + var srcStat syscall.Stat_t + if err := syscall.Stat(srcPath, &srcStat); err != nil { + return err + } + // Change the source volume's ownership if it differs from the root + // files that where just copied + if stat.Uid != srcStat.Uid || stat.Gid != srcStat.Gid { + if err := os.Chown(srcPath, int(stat.Uid), int(stat.Gid)); err != nil { + return err + } + } } } } } - } - if err := container.generateLXCConfig(hostConfig); err != nil { - return err - } - - params := []string{ - "-n", container.ID, - "-f", container.lxcConfigPath(), - "--", - "/.dockerinit", - } - - // Networking - if !container.Config.NetworkDisabled { - params = append(params, "-g", container.network.Gateway.String()) - } - - // User - if container.Config.User != "" { - params = append(params, "-u", container.Config.User) - } - - if container.Config.Tty { - params = append(params, "-e", "TERM=xterm") - } - - // Setup environment - params = append(params, - "-e", "HOME=/", - "-e", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "-e", "container=lxc", - "-e", "HOSTNAME="+container.Config.Hostname, - ) - if container.Config.WorkingDir != "" { - workingDir := path.Clean(container.Config.WorkingDir) - utils.Debugf("[working dir] working dir is %s", workingDir) - - if err := os.MkdirAll(path.Join(container.RootfsPath(), workingDir), 0755); err != nil { - return nil + if err := container.generateLXCConfig(hostConfig); err != nil { + return err } + params := []string{ + "-n", container.ID, + "-f", container.lxcConfigPath(), + "--", + "/.dockerinit", + } + + // Networking + if !container.Config.NetworkDisabled { + params = append(params, "-g", container.network.Gateway.String()) + } + + // User + if container.Config.User != "" { + params = append(params, "-u", container.Config.User) + } + + if container.Config.Tty { + params = append(params, "-e", "TERM=xterm") + } + + // Setup environment params = append(params, - "-w", workingDir, + "-e", "HOME=/", + "-e", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "-e", "container=lxc", + "-e", "HOSTNAME="+container.Config.Hostname, ) + if container.Config.WorkingDir != "" { + workingDir := path.Clean(container.Config.WorkingDir) + utils.Debugf("[working dir] working dir is %s", workingDir) + + if err := os.MkdirAll(path.Join(container.RootfsPath(), workingDir), 0755); err != nil { + return nil + } + + params = append(params, + "-w", workingDir, + ) + } + + for _, elem := range container.Config.Env { + params = append(params, "-e", elem) + } + + // Program + params = append(params, "--", container.Path) + params = append(params, container.Args...) + + container.cmd = exec.Command("lxc-start", params...) + + // Setup logging of stdout and stderr to disk + if err := container.runtime.LogToDisk(container.stdout, container.logPath("json"), "stdout"); err != nil { + return err + } + if err := container.runtime.LogToDisk(container.stderr, container.logPath("json"), "stderr"); err != nil { + return err + } + + container.cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true} + + var err error + if container.Config.Tty { + err = container.startPty() + } else { + err = container.start() + } + if err != nil { + return err + } + // FIXME: save state on disk *first*, then converge + // this way disk state is used as a journal, eg. we can restore after crash etc. + container.State.setRunning(container.cmd.Process.Pid) + + // Init the lock + container.waitLock = make(chan struct{}) + + container.ToDisk() + container.SaveHostConfig(hostConfig) + go container.monitor(hostConfig) + return nil } - - for _, elem := range container.Config.Env { - params = append(params, "-e", elem) - } - - // Program - params = append(params, "--", container.Path) - params = append(params, container.Args...) - - container.cmd = exec.Command("lxc-start", params...) - - // Setup logging of stdout and stderr to disk - if err := container.runtime.LogToDisk(container.stdout, container.logPath("json"), "stdout"); err != nil { - return err - } - if err := container.runtime.LogToDisk(container.stderr, container.logPath("json"), "stderr"); err != nil { - return err - } - - container.cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true} - - var err error - if container.Config.Tty { - err = container.startPty() - } else { - err = container.start() - } + err := startFct(hostConfig) if err != nil { - return err + container.cleanup() } - // FIXME: save state on disk *first*, then converge - // this way disk state is used as a journal, eg. we can restore after crash etc. - container.State.setRunning(container.cmd.Process.Pid) - - // Init the lock - container.waitLock = make(chan struct{}) - - container.ToDisk() - container.SaveHostConfig(hostConfig) - go container.monitor(hostConfig) - return nil + return err } func (container *Container) Run() error { @@ -981,6 +989,28 @@ func (container *Container) monitor(hostConfig *HostConfig) { } // Cleanup + container.cleanup() + + // Re-create a brand new stdin pipe once the container exited + if container.Config.OpenStdin { + container.stdin, container.stdinPipe = io.Pipe() + } + + // Release the lock + close(container.waitLock) + + if err := container.ToDisk(); err != nil { + // FIXME: there is a race condition here which causes this to fail during the unit tests. + // If another goroutine was waiting for Wait() to return before removing the container's root + // from the filesystem... At this point it may already have done so. + // This is because State.setStopped() has already been called, and has caused Wait() + // to return. + // FIXME: why are we serializing running state to disk in the first place? + //log.Printf("%s: Failed to dump configuration to the disk: %s", container.ID, err) + } +} + +func (container *Container) cleanup() { container.releaseNetwork() if container.Config.OpenStdin { if err := container.stdin.Close(); err != nil { @@ -1003,24 +1033,6 @@ func (container *Container) monitor(hostConfig *HostConfig) { if err := container.Unmount(); err != nil { log.Printf("%v: Failed to umount filesystem: %v", container.ID, err) } - - // Re-create a brand new stdin pipe once the container exited - if container.Config.OpenStdin { - container.stdin, container.stdinPipe = io.Pipe() - } - - // Release the lock - close(container.waitLock) - - if err := container.ToDisk(); err != nil { - // FIXME: there is a race condition here which causes this to fail during the unit tests. - // If another goroutine was waiting for Wait() to return before removing the container's root - // from the filesystem... At this point it may already have done so. - // This is because State.setStopped() has already been called, and has caused Wait() - // to return. - // FIXME: why are we serializing running state to disk in the first place? - //log.Printf("%s: Failed to dump configuration to the disk: %s", container.ID, err) - } } func (container *Container) kill() error { From ed6ca109bf27fb2f1855332c47b7375fe4eaa8aa Mon Sep 17 00:00:00 2001 From: "Guillaume J. Charmes" Date: Wed, 16 Oct 2013 13:12:56 -0700 Subject: [PATCH 32/48] Refactor container.Start() --- container.go | 470 +++++++++++++++++++++++++-------------------------- 1 file changed, 233 insertions(+), 237 deletions(-) diff --git a/container.go b/container.go index 0dedf9914d..74f8ee7d8e 100644 --- a/container.go +++ b/container.go @@ -563,274 +563,270 @@ func (container *Container) Attach(stdin io.ReadCloser, stdinCloser io.Closer, s }) } -func (container *Container) Start(hostConfig *HostConfig) error { +func (container *Container) Start(hostConfig *HostConfig) (err error) { container.State.Lock() defer container.State.Unlock() - - startFct := func(hostConfig *HostConfig) error { - - if hostConfig == nil { // in docker start of docker restart we want to reuse previous HostConfigFile - hostConfig, _ = container.ReadHostConfig() + defer func() { + if err != nil { + container.cleanup() } + }() - if container.State.Running { - return fmt.Errorf("The container %s is already running.", container.ID) - } - if err := container.EnsureMounted(); err != nil { + if hostConfig == nil { // in docker start of docker restart we want to reuse previous HostConfigFile + hostConfig, _ = container.ReadHostConfig() + } + + if container.State.Running { + return fmt.Errorf("The container %s is already running.", container.ID) + } + if err := container.EnsureMounted(); err != nil { + return err + } + if container.runtime.networkManager.disabled { + container.Config.NetworkDisabled = true + } else { + if err := container.allocateNetwork(); err != nil { return err } - if container.runtime.networkManager.disabled { - container.Config.NetworkDisabled = true + } + + // Make sure the config is compatible with the current kernel + if container.Config.Memory > 0 && !container.runtime.capabilities.MemoryLimit { + log.Printf("WARNING: Your kernel does not support memory limit capabilities. Limitation discarded.\n") + container.Config.Memory = 0 + } + if container.Config.Memory > 0 && !container.runtime.capabilities.SwapLimit { + log.Printf("WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.\n") + container.Config.MemorySwap = -1 + } + + if container.runtime.capabilities.IPv4ForwardingDisabled { + log.Printf("WARNING: IPv4 forwarding is disabled. Networking will not work") + } + + // Create the requested bind mounts + binds := make(map[string]BindMap) + // Define illegal container destinations + illegalDsts := []string{"/", "."} + + for _, bind := range hostConfig.Binds { + // FIXME: factorize bind parsing in parseBind + var src, dst, mode string + arr := strings.Split(bind, ":") + if len(arr) == 2 { + src = arr[0] + dst = arr[1] + mode = "rw" + } else if len(arr) == 3 { + src = arr[0] + dst = arr[1] + mode = arr[2] } else { - if err := container.allocateNetwork(); err != nil { + return fmt.Errorf("Invalid bind specification: %s", bind) + } + + // Bail if trying to mount to an illegal destination + for _, illegal := range illegalDsts { + if dst == illegal { + return fmt.Errorf("Illegal bind destination: %s", dst) + } + } + + bindMap := BindMap{ + SrcPath: src, + DstPath: dst, + Mode: mode, + } + binds[path.Clean(dst)] = bindMap + } + + if container.Volumes == nil || len(container.Volumes) == 0 { + container.Volumes = make(map[string]string) + container.VolumesRW = make(map[string]bool) + } + + // Apply volumes from another container if requested + if container.Config.VolumesFrom != "" { + volumes := strings.Split(container.Config.VolumesFrom, ",") + for _, v := range volumes { + c := container.runtime.Get(v) + if c == nil { + return fmt.Errorf("Container %s not found. Impossible to mount its volumes", container.ID) + } + for volPath, id := range c.Volumes { + if _, exists := container.Volumes[volPath]; exists { + continue + } + if err := os.MkdirAll(path.Join(container.RootfsPath(), volPath), 0755); err != nil { + return err + } + container.Volumes[volPath] = id + if isRW, exists := c.VolumesRW[volPath]; exists { + container.VolumesRW[volPath] = isRW + } + } + + } + } + + // Create the requested volumes if they don't exist + for volPath := range container.Config.Volumes { + volPath = path.Clean(volPath) + // Skip existing volumes + if _, exists := container.Volumes[volPath]; exists { + continue + } + var srcPath string + var isBindMount bool + srcRW := false + // If an external bind is defined for this volume, use that as a source + if bindMap, exists := binds[volPath]; exists { + isBindMount = true + srcPath = bindMap.SrcPath + if strings.ToLower(bindMap.Mode) == "rw" { + srcRW = true + } + // Otherwise create an directory in $ROOT/volumes/ and use that + } else { + c, err := container.runtime.volumes.Create(nil, container, "", "", nil) + if err != nil { return err } - } - - // Make sure the config is compatible with the current kernel - if container.Config.Memory > 0 && !container.runtime.capabilities.MemoryLimit { - log.Printf("WARNING: Your kernel does not support memory limit capabilities. Limitation discarded.\n") - container.Config.Memory = 0 - } - if container.Config.Memory > 0 && !container.runtime.capabilities.SwapLimit { - log.Printf("WARNING: Your kernel does not support swap limit capabilities. Limitation discarded.\n") - container.Config.MemorySwap = -1 - } - - if container.runtime.capabilities.IPv4ForwardingDisabled { - log.Printf("WARNING: IPv4 forwarding is disabled. Networking will not work") - } - - // Create the requested bind mounts - binds := make(map[string]BindMap) - // Define illegal container destinations - illegalDsts := []string{"/", "."} - - for _, bind := range hostConfig.Binds { - // FIXME: factorize bind parsing in parseBind - var src, dst, mode string - arr := strings.Split(bind, ":") - if len(arr) == 2 { - src = arr[0] - dst = arr[1] - mode = "rw" - } else if len(arr) == 3 { - src = arr[0] - dst = arr[1] - mode = arr[2] - } else { - return fmt.Errorf("Invalid bind specification: %s", bind) + srcPath, err = c.layer() + if err != nil { + return err } + srcRW = true // RW by default + } + container.Volumes[volPath] = srcPath + container.VolumesRW[volPath] = srcRW + // Create the mountpoint + rootVolPath := path.Join(container.RootfsPath(), volPath) + if err := os.MkdirAll(rootVolPath, 0755); err != nil { + return nil + } - // Bail if trying to mount to an illegal destination - for _, illegal := range illegalDsts { - if dst == illegal { - return fmt.Errorf("Illegal bind destination: %s", dst) + // Do not copy or change permissions if we are mounting from the host + if srcRW && !isBindMount { + volList, err := ioutil.ReadDir(rootVolPath) + if err != nil { + return err + } + if len(volList) > 0 { + srcList, err := ioutil.ReadDir(srcPath) + if err != nil { + return err } - } - - bindMap := BindMap{ - SrcPath: src, - DstPath: dst, - Mode: mode, - } - binds[path.Clean(dst)] = bindMap - } - - if container.Volumes == nil || len(container.Volumes) == 0 { - container.Volumes = make(map[string]string) - container.VolumesRW = make(map[string]bool) - } - - // Apply volumes from another container if requested - if container.Config.VolumesFrom != "" { - volumes := strings.Split(container.Config.VolumesFrom, ",") - for _, v := range volumes { - c := container.runtime.Get(v) - if c == nil { - return fmt.Errorf("Container %s not found. Impossible to mount its volumes", container.ID) - } - for volPath, id := range c.Volumes { - if _, exists := container.Volumes[volPath]; exists { - continue - } - if err := os.MkdirAll(path.Join(container.RootfsPath(), volPath), 0755); err != nil { + if len(srcList) == 0 { + // If the source volume is empty copy files from the root into the volume + if err := CopyWithTar(rootVolPath, srcPath); err != nil { return err } - container.Volumes[volPath] = id - if isRW, exists := c.VolumesRW[volPath]; exists { - container.VolumesRW[volPath] = isRW - } - } - } - } - - // Create the requested volumes if they don't exist - for volPath := range container.Config.Volumes { - volPath = path.Clean(volPath) - // Skip existing volumes - if _, exists := container.Volumes[volPath]; exists { - continue - } - var srcPath string - var isBindMount bool - srcRW := false - // If an external bind is defined for this volume, use that as a source - if bindMap, exists := binds[volPath]; exists { - isBindMount = true - srcPath = bindMap.SrcPath - if strings.ToLower(bindMap.Mode) == "rw" { - srcRW = true - } - // Otherwise create an directory in $ROOT/volumes/ and use that - } else { - c, err := container.runtime.volumes.Create(nil, container, "", "", nil) - if err != nil { - return err - } - srcPath, err = c.layer() - if err != nil { - return err - } - srcRW = true // RW by default - } - container.Volumes[volPath] = srcPath - container.VolumesRW[volPath] = srcRW - // Create the mountpoint - rootVolPath := path.Join(container.RootfsPath(), volPath) - if err := os.MkdirAll(rootVolPath, 0755); err != nil { - return nil - } - - // Do not copy or change permissions if we are mounting from the host - if srcRW && !isBindMount { - volList, err := ioutil.ReadDir(rootVolPath) - if err != nil { - return err - } - if len(volList) > 0 { - srcList, err := ioutil.ReadDir(srcPath) - if err != nil { + var stat syscall.Stat_t + if err := syscall.Stat(rootVolPath, &stat); err != nil { return err } - if len(srcList) == 0 { - // If the source volume is empty copy files from the root into the volume - if err := CopyWithTar(rootVolPath, srcPath); err != nil { + var srcStat syscall.Stat_t + if err := syscall.Stat(srcPath, &srcStat); err != nil { + return err + } + // Change the source volume's ownership if it differs from the root + // files that where just copied + if stat.Uid != srcStat.Uid || stat.Gid != srcStat.Gid { + if err := os.Chown(srcPath, int(stat.Uid), int(stat.Gid)); err != nil { return err } - - var stat syscall.Stat_t - if err := syscall.Stat(rootVolPath, &stat); err != nil { - return err - } - var srcStat syscall.Stat_t - if err := syscall.Stat(srcPath, &srcStat); err != nil { - return err - } - // Change the source volume's ownership if it differs from the root - // files that where just copied - if stat.Uid != srcStat.Uid || stat.Gid != srcStat.Gid { - if err := os.Chown(srcPath, int(stat.Uid), int(stat.Gid)); err != nil { - return err - } - } } } } } + } - if err := container.generateLXCConfig(hostConfig); err != nil { - return err + if err := container.generateLXCConfig(hostConfig); err != nil { + return err + } + + params := []string{ + "-n", container.ID, + "-f", container.lxcConfigPath(), + "--", + "/.dockerinit", + } + + // Networking + if !container.Config.NetworkDisabled { + params = append(params, "-g", container.network.Gateway.String()) + } + + // User + if container.Config.User != "" { + params = append(params, "-u", container.Config.User) + } + + if container.Config.Tty { + params = append(params, "-e", "TERM=xterm") + } + + // Setup environment + params = append(params, + "-e", "HOME=/", + "-e", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", + "-e", "container=lxc", + "-e", "HOSTNAME="+container.Config.Hostname, + ) + if container.Config.WorkingDir != "" { + workingDir := path.Clean(container.Config.WorkingDir) + utils.Debugf("[working dir] working dir is %s", workingDir) + + if err := os.MkdirAll(path.Join(container.RootfsPath(), workingDir), 0755); err != nil { + return nil } - params := []string{ - "-n", container.ID, - "-f", container.lxcConfigPath(), - "--", - "/.dockerinit", - } - - // Networking - if !container.Config.NetworkDisabled { - params = append(params, "-g", container.network.Gateway.String()) - } - - // User - if container.Config.User != "" { - params = append(params, "-u", container.Config.User) - } - - if container.Config.Tty { - params = append(params, "-e", "TERM=xterm") - } - - // Setup environment params = append(params, - "-e", "HOME=/", - "-e", "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin", - "-e", "container=lxc", - "-e", "HOSTNAME="+container.Config.Hostname, + "-w", workingDir, ) - if container.Config.WorkingDir != "" { - workingDir := path.Clean(container.Config.WorkingDir) - utils.Debugf("[working dir] working dir is %s", workingDir) - - if err := os.MkdirAll(path.Join(container.RootfsPath(), workingDir), 0755); err != nil { - return nil - } - - params = append(params, - "-w", workingDir, - ) - } - - for _, elem := range container.Config.Env { - params = append(params, "-e", elem) - } - - // Program - params = append(params, "--", container.Path) - params = append(params, container.Args...) - - container.cmd = exec.Command("lxc-start", params...) - - // Setup logging of stdout and stderr to disk - if err := container.runtime.LogToDisk(container.stdout, container.logPath("json"), "stdout"); err != nil { - return err - } - if err := container.runtime.LogToDisk(container.stderr, container.logPath("json"), "stderr"); err != nil { - return err - } - - container.cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true} - - var err error - if container.Config.Tty { - err = container.startPty() - } else { - err = container.start() - } - if err != nil { - return err - } - // FIXME: save state on disk *first*, then converge - // this way disk state is used as a journal, eg. we can restore after crash etc. - container.State.setRunning(container.cmd.Process.Pid) - - // Init the lock - container.waitLock = make(chan struct{}) - - container.ToDisk() - container.SaveHostConfig(hostConfig) - go container.monitor(hostConfig) - return nil } - err := startFct(hostConfig) + + for _, elem := range container.Config.Env { + params = append(params, "-e", elem) + } + + // Program + params = append(params, "--", container.Path) + params = append(params, container.Args...) + + container.cmd = exec.Command("lxc-start", params...) + + // Setup logging of stdout and stderr to disk + if err := container.runtime.LogToDisk(container.stdout, container.logPath("json"), "stdout"); err != nil { + return err + } + if err := container.runtime.LogToDisk(container.stderr, container.logPath("json"), "stderr"); err != nil { + return err + } + + container.cmd.SysProcAttr = &syscall.SysProcAttr{Setsid: true} + + if container.Config.Tty { + err = container.startPty() + } else { + err = container.start() + } if err != nil { - container.cleanup() + return err } - return err + // FIXME: save state on disk *first*, then converge + // this way disk state is used as a journal, eg. we can restore after crash etc. + container.State.setRunning(container.cmd.Process.Pid) + + // Init the lock + container.waitLock = make(chan struct{}) + + container.ToDisk() + container.SaveHostConfig(hostConfig) + go container.monitor(hostConfig) + return nil } func (container *Container) Run() error { From a2ffa637ceb694b1e7a21972a9482a0c9c1676c8 Mon Sep 17 00:00:00 2001 From: Daniel Mizyrycki Date: Wed, 16 Oct 2013 13:26:39 -0700 Subject: [PATCH 33/48] testing infrastructure, PR #2195: Add aggregated docker-ci email report --- .../docker-ci/report/Dockerfile | 28 ++++ .../docker-ci/report/deployment.py | 130 ++++++++++++++++ .../infrastructure/docker-ci/report/report.py | 145 ++++++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 hack/infrastructure/docker-ci/report/Dockerfile create mode 100755 hack/infrastructure/docker-ci/report/deployment.py create mode 100755 hack/infrastructure/docker-ci/report/report.py diff --git a/hack/infrastructure/docker-ci/report/Dockerfile b/hack/infrastructure/docker-ci/report/Dockerfile new file mode 100644 index 0000000000..32600c4c58 --- /dev/null +++ b/hack/infrastructure/docker-ci/report/Dockerfile @@ -0,0 +1,28 @@ +# VERSION: 0.22 +# DOCKER-VERSION 0.6.3 +# AUTHOR: Daniel Mizyrycki +# DESCRIPTION: Generate docker-ci daily report +# COMMENTS: The build process is initiated by deployment.py + Report configuration is passed through ./credentials.json at +# deployment time. +# TO_BUILD: docker build -t report . +# TO_DEPLOY: docker run report + +from ubuntu:12.04 +maintainer Daniel Mizyrycki + +env PYTHONPATH /report + + +# Add report dependencies +run echo 'deb http://archive.ubuntu.com/ubuntu precise main universe' > \ + /etc/apt/sources.list +run apt-get update; apt-get install -y python2.7 python-pip ssh rsync + +# Set San Francisco timezone +run echo "America/Los_Angeles" >/etc/timezone +run dpkg-reconfigure --frontend noninteractive tzdata + +# Add report code and set default container command +add . /report +cmd "/report/report.py" diff --git a/hack/infrastructure/docker-ci/report/deployment.py b/hack/infrastructure/docker-ci/report/deployment.py new file mode 100755 index 0000000000..d5efb4a960 --- /dev/null +++ b/hack/infrastructure/docker-ci/report/deployment.py @@ -0,0 +1,130 @@ +#!/usr/bin/env python + +'''Deploy docker-ci report container on Digital Ocean. +Usage: + export CONFIG_JSON=' + { "DROPLET_NAME": "Digital_Ocean_dropplet_name", + "DO_CLIENT_ID": "Digital_Ocean_client_id", + "DO_API_KEY": "Digital_Ocean_api_key", + "DOCKER_KEY_ID": "Digital_Ocean_ssh_key_id", + "DOCKER_CI_KEY_PATH": "docker-ci_private_key_path", + "DOCKER_CI_PUB": "$(cat docker-ci_ssh_public_key.pub)", + "DOCKER_CI_ADDRESS" "user@docker-ci_fqdn_server", + "SMTP_USER": "SMTP_server_user", + "SMTP_PWD": "SMTP_server_password", + "EMAIL_SENDER": "Buildbot_mailing_sender", + "EMAIL_RCP": "Buildbot_mailing_receipient" }' + python deployment.py +''' + +import re, json, requests, base64 +from fabric import api +from fabric.api import cd, run, put, sudo +from os import environ as env +from time import sleep +from datetime import datetime + +# Populate environment variables +CONFIG = json.loads(env['CONFIG_JSON']) +for key in CONFIG: + env[key] = CONFIG[key] + +# Load DOCKER_CI_KEY +env['DOCKER_CI_KEY'] = open(env['DOCKER_CI_KEY_PATH']).read() + +DROPLET_NAME = env.get('DROPLET_NAME','report') +TIMEOUT = 120 # Seconds before timeout droplet creation +IMAGE_ID = 894856 # Docker on Ubuntu 13.04 +REGION_ID = 4 # New York 2 +SIZE_ID = 66 # memory 512MB +DO_IMAGE_USER = 'root' # Image user on Digital Ocean +API_URL = 'https://api.digitalocean.com/' + + +class digital_ocean(): + + def __init__(self, key, client): + '''Set default API parameters''' + self.key = key + self.client = client + self.api_url = API_URL + + def api(self, cmd_path, api_arg={}): + '''Make api call''' + api_arg.update({'api_key':self.key, 'client_id':self.client}) + resp = requests.get(self.api_url + cmd_path, params=api_arg).text + resp = json.loads(resp) + if resp['status'] != 'OK': + raise Exception(resp['error_message']) + return resp + + def droplet_data(self, name): + '''Get droplet data''' + data = self.api('droplets') + data = [droplet for droplet in data['droplets'] + if droplet['name'] == name] + return data[0] if data else {} + +def json_fmt(data): + '''Format json output''' + return json.dumps(data, sort_keys = True, indent = 2) + + +do = digital_ocean(env['DO_API_KEY'], env['DO_CLIENT_ID']) + +# Get DROPLET_NAME data +data = do.droplet_data(DROPLET_NAME) + +# Stop processing if DROPLET_NAME exists on Digital Ocean +if data: + print ('Droplet: {} already deployed. Not further processing.' + .format(DROPLET_NAME)) + exit(1) + +# Create droplet +do.api('droplets/new', {'name':DROPLET_NAME, 'region_id':REGION_ID, + 'image_id':IMAGE_ID, 'size_id':SIZE_ID, + 'ssh_key_ids':[env['DOCKER_KEY_ID']]}) + +# Wait for droplet to be created. +start_time = datetime.now() +while (data.get('status','') != 'active' and ( + datetime.now()-start_time).seconds < TIMEOUT): + data = do.droplet_data(DROPLET_NAME) + print data['status'] + sleep(3) + +# Wait for the machine to boot +sleep(15) + +# Get droplet IP +ip = str(data['ip_address']) +print 'droplet: {} ip: {}'.format(DROPLET_NAME, ip) + +api.env.host_string = ip +api.env.user = DO_IMAGE_USER +api.env.key_filename = env['DOCKER_CI_KEY_PATH'] + +# Correct timezone +sudo('echo "America/Los_Angeles" >/etc/timezone') +sudo('dpkg-reconfigure --frontend noninteractive tzdata') + +# Load JSON_CONFIG environment for Dockerfile +CONFIG_JSON= base64.b64encode( + '{{"DOCKER_CI_PUB": "{DOCKER_CI_PUB}",' + ' "DOCKER_CI_KEY": "{DOCKER_CI_KEY}",' + ' "DOCKER_CI_ADDRESS": "{DOCKER_CI_ADDRESS}",' + ' "SMTP_USER": "{SMTP_USER}",' + ' "SMTP_PWD": "{SMTP_PWD}",' + ' "EMAIL_SENDER": "{EMAIL_SENDER}",' + ' "EMAIL_RCP": "{EMAIL_RCP}"}}'.format(**env)) + +run('mkdir -p /data/report') +put('./', '/data/report') +with cd('/data/report'): + run('chmod 700 report.py') + run('echo "{}" > credentials.json'.format(CONFIG_JSON)) + run('docker build -t report .') + run('rm credentials.json') + run("echo -e '30 09 * * * /usr/bin/docker run report\n' |" + " /usr/bin/crontab -") diff --git a/hack/infrastructure/docker-ci/report/report.py b/hack/infrastructure/docker-ci/report/report.py new file mode 100755 index 0000000000..7018cabc27 --- /dev/null +++ b/hack/infrastructure/docker-ci/report/report.py @@ -0,0 +1,145 @@ +#!/usr/bin/python + +'''CONFIG_JSON is a json encoded string base64 environment variable. It is used +to clone docker-ci database, generate docker-ci report and submit it by email. +CONFIG_JSON data comes from the file /report/credentials.json inserted in this +container by deployment.py: + +{ "DOCKER_CI_PUB": "$(cat docker-ci_ssh_public_key.pub)", + "DOCKER_CI_KEY": "$(cat docker-ci_ssh_private_key.key)", + "DOCKER_CI_ADDRESS": "user@docker-ci_fqdn_server", + "SMTP_USER": "SMTP_server_user", + "SMTP_PWD": "SMTP_server_password", + "EMAIL_SENDER": "Buildbot_mailing_sender", + "EMAIL_RCP": "Buildbot_mailing_receipient" } ''' + +import os, re, json, sqlite3, datetime, base64 +import smtplib +from datetime import timedelta +from subprocess import call +from os import environ as env + +TODAY = datetime.date.today() + +# Load credentials to the environment +env['CONFIG_JSON'] = base64.b64decode(open('/report/credentials.json').read()) + +# Remove SSH private key as it needs more processing +CONFIG = json.loads(re.sub(r'("DOCKER_CI_KEY".+?"(.+?)",)','', + env['CONFIG_JSON'], flags=re.DOTALL)) + +# Populate environment variables +for key in CONFIG: + env[key] = CONFIG[key] + +# Load SSH private key +env['DOCKER_CI_KEY'] = re.sub('^.+"DOCKER_CI_KEY".+?"(.+?)".+','\\1', + env['CONFIG_JSON'],flags=re.DOTALL) + +# Prevent rsync to validate host on first connection to docker-ci +os.makedirs('/root/.ssh') +open('/root/.ssh/id_rsa','w').write(env['DOCKER_CI_KEY']) +os.chmod('/root/.ssh/id_rsa',0600) +open('/root/.ssh/config','w').write('StrictHostKeyChecking no\n') + + +# Sync buildbot database from docker-ci +call('rsync {}:/data/buildbot/master/state.sqlite .'.format( + env['DOCKER_CI_ADDRESS']), shell=True) + +class SQL: + def __init__(self, database_name): + sql = sqlite3.connect(database_name) + # Use column names as keys for fetchall rows + sql.row_factory = sqlite3.Row + sql = sql.cursor() + self.sql = sql + + def query(self,query_statement): + return self.sql.execute(query_statement).fetchall() + +sql = SQL("state.sqlite") + + +class Report(): + + def __init__(self,period='',date=''): + self.data = [] + self.period = 'date' if not period else period + self.date = str(TODAY) if not date else date + self.compute() + + def compute(self): + '''Compute report''' + if self.period == 'week': + self.week_report(self.date) + else: + self.date_report(self.date) + + + def date_report(self,date): + '''Create a date test report''' + builds = [] + # Get a queryset with all builds from date + rows = sql.query('SELECT * FROM builds JOIN buildrequests' + ' WHERE builds.brid=buildrequests.id and' + ' date(start_time, "unixepoch", "localtime") = "{0}"' + ' GROUP BY number'.format(date)) + build_names = sorted(set([row['buildername'] for row in rows])) + # Create a report build line for a given build + for build_name in build_names: + tried = len([row['buildername'] + for row in rows if row['buildername'] == build_name]) + fail_tests = [row['buildername'] for row in rows if ( + row['buildername'] == build_name and row['results'] != 0)] + fail = len(fail_tests) + fail_details = '' + fail_pct = int(100.0*fail/tried) if tried != 0 else 100 + builds.append({'name': build_name, 'tried': tried, 'fail': fail, + 'fail_pct': fail_pct, 'fail_details':fail_details}) + if builds: + self.data.append({'date': date, 'builds': builds}) + + + def week_report(self,date): + '''Add the week's date test reports to report.data''' + date = datetime.datetime.strptime(date,'%Y-%m-%d').date() + last_monday = date - datetime.timedelta(days=date.weekday()) + week_dates = [last_monday + timedelta(days=x) for x in range(7,-1,-1)] + for date in week_dates: + self.date_report(str(date)) + + def render_text(self): + '''Return rendered report in text format''' + retval = '' + fail_tests = {} + for builds in self.data: + retval += 'Test date: {0}\n'.format(builds['date'],retval) + table = '' + for build in builds['builds']: + table += ('Build {name:15} Tried: {tried:4} ' + ' Failures: {fail:4} ({fail_pct}%)\n'.format(**build)) + if build['name'] in fail_tests: + fail_tests[build['name']] += build['fail_details'] + else: + fail_tests[build['name']] = build['fail_details'] + retval += '{0}\n'.format(table) + retval += '\n Builds failing' + for fail_name in fail_tests: + retval += '\n' + fail_name + '\n' + for (fail_id,fail_url,rn_tests,nr_errors,log_errors, + tracelog_errors) in fail_tests[fail_name]: + retval += fail_url + '\n' + retval += '\n\n' + return retval + + +# Send email +smtp_from = env['EMAIL_SENDER'] +subject = '[docker-ci] Daily report for {}'.format(str(TODAY)) +msg = "From: {}\r\nTo: {}\r\nSubject: {}\r\n\r\n".format( + smtp_from, env['EMAIL_RCP'], subject) +msg = msg + Report('week').render_text() +server = smtplib.SMTP_SSL('smtp.mailgun.org') +server.login(env['SMTP_USER'], env['SMTP_PWD']) +server.sendmail(smtp_from, env['EMAIL_RCP'], msg) From dab84f7e8bc1647f70782731e797fd827c7ce42a Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Wed, 16 Oct 2013 14:38:24 -0700 Subject: [PATCH 34/48] Revert "Fix #2115 Clean AUFS references. Also fixes some links to client libraries and mongo example." This reverts commit f4c17a202b5f6021d48c3cb3342c37607b509630. --- docs/sources/api/docker_remote_api.rst | 1 - docs/sources/api/index.rst | 2 +- .../api/remote_api_client_libraries.rst | 10 +- docs/sources/examples/hello_world.rst | 2 +- docs/sources/installation/archlinux.rst | 4 - docs/sources/installation/gentoolinux.rst | 5 - docs/sources/installation/kernel.rst | 22 +- docs/sources/installation/ubuntulinux.rst | 55 +++-- .../images/docker-filesystems-busyboxrw.png | Bin 127097 -> 121141 bytes .../images/docker-filesystems-debian.png | Bin 84453 -> 77822 bytes .../images/docker-filesystems-debianrw.png | Bin 100852 -> 94218 bytes .../images/docker-filesystems-generic.png | Bin 85145 -> 78384 bytes .../images/docker-filesystems-multilayer.png | Bin 130252 -> 127744 bytes .../images/docker-filesystems-multiroot.png | Bin 81771 -> 72247 bytes .../terms/images/docker-filesystems.svg | 232 ++++-------------- 15 files changed, 95 insertions(+), 238 deletions(-) diff --git a/docs/sources/api/docker_remote_api.rst b/docs/sources/api/docker_remote_api.rst index f410183c58..86cacd17d9 100644 --- a/docs/sources/api/docker_remote_api.rst +++ b/docs/sources/api/docker_remote_api.rst @@ -22,7 +22,6 @@ Docker Remote API - Since API version 1.2, the auth configuration is now handled client side, so the client has to send the authConfig as POST in /images/(name)/push -- Known client libraries may be found in :ref:`remote_api_client_libs` 2. Versions =========== diff --git a/docs/sources/api/index.rst b/docs/sources/api/index.rst index 017369143c..d7345e8746 100644 --- a/docs/sources/api/index.rst +++ b/docs/sources/api/index.rst @@ -14,5 +14,5 @@ Your programs and scripts can access Docker's functionality via these interfaces registry_api index_api docker_remote_api - remote_api_client_libraries + diff --git a/docs/sources/api/remote_api_client_libraries.rst b/docs/sources/api/remote_api_client_libraries.rst index f391613ec4..bd8610eaf1 100644 --- a/docs/sources/api/remote_api_client_libraries.rst +++ b/docs/sources/api/remote_api_client_libraries.rst @@ -3,18 +3,14 @@ :keywords: API, Docker, index, registry, REST, documentation, clients, Python, Ruby, Javascript, Erlang, Go -.. _remote_api_client_libs: - ================================== Docker Remote API Client Libraries ================================== These libraries have not been tested by the Docker Maintainers for -compatibility with the :doc:`docker_remote_api`. Please file issues -with the library owners. If you find more library implementations, -please list them in `Docker doc issues -`_ -or make a pull request, and we will add the libraries here. +compatibility. Please file issues with the library owners. If you +find more library implementations, please list them in Docker doc bugs +and we will add the libraries here. +----------------------+----------------+--------------------------------------------+ | Language/Framework | Name | Repository | diff --git a/docs/sources/examples/hello_world.rst b/docs/sources/examples/hello_world.rst index 54ebdacc6a..647a34aa1f 100644 --- a/docs/sources/examples/hello_world.rst +++ b/docs/sources/examples/hello_world.rst @@ -178,4 +178,4 @@ you could skip to any of the other examples: * :ref:`running_ssh_service` * :ref:`running_couchdb_service` * :ref:`postgresql_service` -* :ref:`mongodb_image` +* :ref:`mongodb` diff --git a/docs/sources/installation/archlinux.rst b/docs/sources/installation/archlinux.rst index a593b28f50..a4de066f76 100644 --- a/docs/sources/installation/archlinux.rst +++ b/docs/sources/installation/archlinux.rst @@ -19,10 +19,6 @@ The lxc-docker-git package will build from the current master branch. Dependencies ------------ -.. versionchanged:: v0.7 - This section may need to be updated since Docker no longer depends - on AUFS. Please see :ref:`kernel`. - Docker depends on several packages which are specified as dependencies in either AUR package. diff --git a/docs/sources/installation/gentoolinux.rst b/docs/sources/installation/gentoolinux.rst index 374301e648..c4f2d220f3 100644 --- a/docs/sources/installation/gentoolinux.rst +++ b/docs/sources/installation/gentoolinux.rst @@ -25,11 +25,6 @@ properly installing and using the overlay can be found in `the overlay README Installation ^^^^^^^^^^^^ -.. versionchanged:: v0.7 - This section may need to be updated since Docker no longer depends - on AUFS. Please see :ref:`kernel`. - - The package should properly pull in all the necessary dependencies and prompt for all necessary kernel options. For the most straightforward installation experience, use ``sys-kernel/aufs-sources`` as your kernel sources. If you diff --git a/docs/sources/installation/kernel.rst b/docs/sources/installation/kernel.rst index 6e22677e03..2959fa4fcd 100644 --- a/docs/sources/installation/kernel.rst +++ b/docs/sources/installation/kernel.rst @@ -11,7 +11,7 @@ In short, Docker has the following kernel requirements: - Linux version 3.8 or above. -- `Device Mapper support `_. +- `AUFS support `_. - Cgroups and namespaces must be enabled. @@ -48,17 +48,15 @@ detects something older than 3.8. See issue `#407 `_ for details. -Device Mapper support ---------------------- +AUFS support +------------ -The `Device Mapper `_ replaces the -previous Docker dependency on AUFS and has been in the kernel since -2.6.9, so the device-mapper module is more broadly-supported across -Linux distributions. Docker uses `thin-provisioning -`_ -to provide a :ref:`unioning file system `. If you'd like to -check for the presence of the device-mapper module, please see the -`LVM-HOWTO. `_ +Docker currently relies on AUFS, an unioning filesystem. +While AUFS is included in the kernels built by the Debian and Ubuntu +distributions, is not part of the standard kernel. This means that if +you decide to roll your own kernel, you will have to patch your +kernel tree to add AUFS. The process is documented on +`AUFS webpage `_. Cgroups and namespaces @@ -71,7 +69,7 @@ to run LXC containers. Note that 2.6.32 has some documented issues regarding network namespace setup and teardown; those issues are not a risk if you run containers in a private environment, but can lead to denial-of-service attacks if you want to run untrusted code in your containers. For more details, -see `LP#720095 `_. +see `[LP#720095 `_. Kernels 2.6.38, and every version since 3.2, have been deployed successfully to run containerized production workloads. Feature-wise, there is no huge diff --git a/docs/sources/installation/ubuntulinux.rst b/docs/sources/installation/ubuntulinux.rst index 39a7b4f6bf..e653f704a8 100644 --- a/docs/sources/installation/ubuntulinux.rst +++ b/docs/sources/installation/ubuntulinux.rst @@ -7,6 +7,11 @@ Ubuntu Linux ============ +.. warning:: + + These instructions have changed for 0.6. If you are upgrading from + an earlier version, you will need to follow them again. + .. include:: install_header.inc Right now, the officially supported distribution are: @@ -14,10 +19,10 @@ Right now, the officially supported distribution are: - :ref:`ubuntu_precise` - :ref:`ubuntu_raring` -Docker has the following dependencies (read more in :ref:`kernel`): +Docker has the following dependencies -* Linux kernel 3.8 -* Device-mapper module +* Linux kernel 3.8 (read more about :ref:`kernel`) +* AUFS file system support (we are working on BTRFS support as an alternative) Please read :ref:`ufw`, if you plan to use `UFW (Uncomplicated Firewall) `_ @@ -37,12 +42,12 @@ Dependencies Due to a bug in LXC, docker works best on the 3.8 kernel. Precise comes with a 3.2 kernel, so we need to upgrade it. The kernel you'll -install when following these steps comes with device-mapper built -in. We also include the generic headers to enable packages that depend -on them, like ZFS and the VirtualBox guest additions. If you didn't -install the headers for your "precise" kernel, then you can skip these -headers for the "raring" kernel. But it is safer to include them if -you're not sure. +install when following these steps comes with AUFS built in. We also +include the generic headers to enable packages that depend on them, +like ZFS and the VirtualBox guest additions. If you didn't install the +headers for your "precise" kernel, then you can skip these headers for +the "raring" kernel. But it is safer to include them if you're not +sure. .. code-block:: bash @@ -58,7 +63,8 @@ you're not sure. Installation ------------ -.. versionchanged:: v0.6 +.. warning:: + These instructions have changed for 0.6. If you are upgrading from an earlier version, you will need to follow them again. @@ -100,19 +106,13 @@ Ubuntu Raring 13.04 (64 bit) Dependencies ------------ -.. versionchanged:: v0.7 - Starting in 0.7 you no longer need to add support for AUFS. - We now use the device-mapper module instead, and this module - is included with kernels since kernel version 2.6 +**AUFS filesystem support** -Ubuntu Raring already comes with the 3.8 kernel, so we don't need to -install it. However, not all systems have AUFS filesystem support -enabled, so if you're on a Docker version before 0.7, then we need to -install it. +Ubuntu Raring already comes with the 3.8 kernel, so we don't need to install it. However, not all systems +have AUFS filesystem support enabled, so we need to install it. .. code-block:: bash - # Only required for versions before v0.7 sudo apt-get update sudo apt-get install linux-image-extra-`uname -r` @@ -122,9 +122,8 @@ Installation Docker is available as a Debian package, which makes installation easy. -*Please note that these instructions have changed for 0.6. If you are -upgrading from an earlier version, you will need to follow them -again.* +*Please note that these instructions have changed for 0.6. If you are upgrading from an earlier version, you will need +to follow them again.* .. code-block:: bash @@ -161,8 +160,8 @@ Verify it worked Docker and UFW ^^^^^^^^^^^^^^ -Docker uses a bridge to manage container networking, and by default -UFW drops all `forwarding`. A first step is to enable forwarding: +Docker uses a bridge to manage containers networking, by default UFW +drop all `forwarding`, a first step is to enable forwarding: .. code-block:: bash @@ -180,3 +179,11 @@ Then reload UFW: sudo ufw reload +UFW's default set of rules denied all `incoming`, so if you want to be +able to reach your containers from another host, you should allow +incoming connections on the docker port (default 4243): + +.. code-block:: bash + + sudo ufw allow 4243/tcp + diff --git a/docs/sources/terms/images/docker-filesystems-busyboxrw.png b/docs/sources/terms/images/docker-filesystems-busyboxrw.png index d672083b0d4c9f43333507e8e2a7d6bfeb505290..ad41c940e4767ed22b89923af94f564f8094b7e6 100644 GIT binary patch delta 48792 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%0D?`4P(fnC=)SkAkTjGv+|CaF%uKV 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 delta 54794 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 diff --git a/docs/sources/terms/images/docker-filesystems-debian.png b/docs/sources/terms/images/docker-filesystems-debian.png index 70badfaa40c7d28672e0f7c900fffaf7bc8c14f4..823a215d3e9266dbbc0c3dba45b78af448aef58a 100644 GIT binary patch delta 59587 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 ASO5S3 delta 66270 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 diff --git a/docs/sources/terms/images/docker-filesystems-debianrw.png b/docs/sources/terms/images/docker-filesystems-debianrw.png index c39cbd9d61017a90641c4e93012a7ef4e686a0ae..97c69a9944ea01844f7c2639c7483c0bff52d09e 100644 GIT binary patch delta 59203 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 OmAZF!QxknRR)k?!v9?)qQuy+1R~ILt5( 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%0A0bCfCX#VFb=et9FS(jx- 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 C98h!s diff --git a/docs/sources/terms/images/docker-filesystems-generic.png b/docs/sources/terms/images/docker-filesystems-generic.png index a9f04e9129cb4ddbf5a7ae9bde665748ba8725ee..fb734b75c62aff73923b144ceb8ed15187e0594f 100644 GIT binary patch delta 59512 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 Yg?Q(M#Td#f*b1VecvT_qpBs1o2TkjH@c;k- delta 66327 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

C?2t7>|vGy}7a8{={Nd=w^Gz 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 RIuQ6$lv9)aC~Xq--vDvlgQoxh diff --git a/docs/sources/terms/images/docker-filesystems-multilayer.png b/docs/sources/terms/images/docker-filesystems-multilayer.png index fc6fc88597fd5feeb331c2e6c3189eb540bbb049..0b3ae19c2c4d3c94bf4ba97f5bbfc3d5180c00ed 100644 GIT binary patch delta 111056 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

?(!p!frclo?Rq4w=2aWi5Lh&82 zw6}OGFGo@(Z^UBmsnEVu#?ZKRpPT-G%hZiWyfo9*$!TKktHsPpnurtZkT-6q#CteE zIuLL-U!Cgv>3K*qMA9p(4efmz1fGL;FOW#%$F{lMgF*r+I5jMJAhd6}l)S=td35W! z712kg<`!XK?MU(jfm@Wp3E!pAocP@IifQ&53`-S;dg#es_TNAfAfa! z^rEnZHtLQnxZ&Ze1%w8Ei#fqQBB<;P=P*FlUBXJDP$R6}9;PQGB6om?@_Ym7!3KaJ z1_e6GHdTj%FTH(&J(SF)RG#8&7^}0?NW~QW%0*r64+{lfmx```5=%Cy*=*BE6ujlA z4RrG#4jiMNbGv42UJuZU78Zr{zL;BnYC`lT79O>`eUcFuD(s=6@VB~jKccdn{>4)% z_rVE!DS>%1xoNkOY85pe={__@%J-QSFNKF099|_$ac~`8BB2pVE4yC``;JJer?YNx z*2tNyi2`B>U5oo73(N8p$1?KXK>JgU5Bla45bQ;U#l@m02#@rpeRZ>ImgqNQhN0E+ zpW(9Vkme0eEsyLQqTQNqwzMQFhuxv}Pj*dt9k7C5^{ayO7`apEzySrs|EUN{x{g+H zmt?5LeI}7&jr-Bw#ebRQKbszvU2R}~r`0~>BkK6EGF0!Ln&)%E$taaK^pq$~>d8q{ zEdedg#5Nx=kQs884lDc0UaG_G2!w73NtyFa*$H^O-!*rTo^OmG`N5mI+lU{gto89u zdArz&S{)HsJvbhF`}g6toM2`mbRc$X)li2wG13(869&45@#AxkkXzd38%f?7sRLK7 z_KT^)>aCgk!!X4@{Ga-QME7p{tVqZ?@(-7p^!Z|gZeJ}-(@QWN{)|O}`UCHT`P|q) z4ilao5)ZeZ;uQ0Lw9wcwwi8U0b(?un;o>u2uV83(MMC@mFp2d$7U7gaGwV^^`>OH06vJI)<>pj2lVM;HQ3q3kRV2LH zW}UstE@5bhRow@Via33!VeeU%a1gP3uH*0XT_`?_aN>>AVPuK&BcfBSLocJthE0|8 zP(e_Z7esZwnHH`BbX@Xsm|bHvn2Pv%KtT?aLT ziZ%@e^PEe)~fLgc`50gYH=J#2_5&UvrngB+zma-YX`Zbf)SNRDg(B5#^BI zox3UMd7u~Mc4GQHm6!N}5fVyl5DD9z^xl4J$bx{Nq`zod(Uw9aMf|h75!Ct0gkn}c zTD`D;@OJ!@k5fW-r!?$WV$70!bXwJnKr}AXU0ed2YZ?zv+_$6KhvWRA^ zuWeUg<;z`|<#Xc}^8fL4mQh)?(blHBySqC?x*MdsL8L=cnoT}* zNr*~!Nl15t0@8?dcXz|tyyrWgWBAwM*v}nn&bjV&MJ9{_B;j}4{*$_uu@`$9#-z-; zFct?e{X2yU>0ueD3-=48Ms3<&^ID-2OW6)%OEt%TMSn8Mg8DxlyQCZ8j`xDsXteAKKP2p_76AnisX1NGV?s;st{(bVDDj#IPx5m`Ff8z_bKdEw?}q7e zuG3Q8f50J-!gjew(iuPjXSLN_hp*q%qKJ?KxvZMihQe~n(K^B~1$@Cj-RY74ey2#N zN-1AZTxig&_AXkH+|V6^f6IXZsFuPXKcXgP$tOHSLSa)ZL9czgTUDh**s1H~#FHx0 zmQ4PNuJWD-N<0ID@tvC}%QSL-6lQ;!l;mT%1^1)QUT(w zP>Np#)l2viXHsdm24AT5cE-#(+Tn^OzVv3MkOyS6no_ynrxk*Vn+`4yV!LMT%EoR+F7N*RJrcl!Tbfm<_H3-H(zCg!kP}@?t!#m32u44YUbiYXUfDO85S$)9l(W*vBD30G!B|W{I zk?2O^**veCjpWK=ovDFSunp}SXNdIbkkE;&L+*0uES&uox2EUJABf3zt9N>~0~E8E zb>6u*tz}}Xc*#i2D*@g1%0X|mlc3@l^R9YdO1hx2vZ2<9g-QcDA;XF);(o!mSjPsi zYmk#Joz!6WRxll-(ksjPLky)Ng(Hwnh*69h7Y(N$%>X5vzs{QZ=QV)22+4Y(x4d+6 zQx1A~fj*8G&kej1ndZ!dPc5WSBsNH7Nm0)bgX-Ud1&t7ZD=r;j>et?>T#=D+pzzmO zX+m!$bg=EY>vMu_Zl|Tyt;0MkZ5ayNCmsZ7UP>t4ks^%!Tmi@KhieHGUDZhNNgl~m zRA1M4P*T8n_3B0amL&ALEA&esjV}f0j?yrKI>39Wi!%^0HflrZ{!YdQmg)#O7979f zRA|npodhtJih?(0nJx=EvSBu%fR^eLNW3`l-!pQz93%eu{ea4ln^d3;UCfz?Eh+k_gFSEVmHr{7NLE*twrt$wp7(8CUYNc(M zm8Kb*M;%Y6(1j2cvM`|N7#!n-=IABDYk8mSA}GJ+xDwc9$mO5-o;q zU7jQo=pno%Uh)5~{{Qj~QE3JkX@;H!WQ)Hqmf)(uVS_0@- zes9yK5WtVqOl;*m%!jRV9}>(nK-li#VCvY?qzR3Lb>U7N&{8TrU0Bt*#A3MY@VRh3T`)KR$+v zD!?Y33UGpP*`VEgS&ecuzj=y~1U=ibzb_Byz-a>gS|G06K_5A^T`wMoV=t`R8K7jz7$x44(_Dg{MYsmQyv6Ou}Ai?uBJfjSY`3hyh=3ih6DrS*H+xNd!o;}{xBES z$`&L6@FI{zJf_kN5%M$jHzfLZ_|==1=J!Vunh5H8&}~ zN%<$8NAHivP`9_XTe{}nwCfA3J~4&{CaZIAxWc-dCS)~c!-_rQp5A;M!^Ex1sb$tb zN*~$S3**45f4<*jV~ISSVzbBaes6Z#{Q0aa){jZ$z}TD@)~sC#yUwoBR*#>c@m+_IJdun($Q%=&fT3N=^jE(hM3FQKss42W?&R?+BTIjO)`U@Ogs` zC(KRzh!`rULpd#gIU-S5PCAZu;&{tejhag>Bz|^DO?#F%$Wd5=6VIgi1qLNeyg+mPRW;!7zHYkoBD2XAI=>T6s_4 zGk8D;$h`!l5j$xnz&s`rL~()TAXm1n-f zPO<{sXHqm~K!WZ_tqOYl0JaYE84~hiMZMZWaQR9H4&v24H-nyVDDC}$QtAj-W-ezh z1wB1>U`mQTT##BL@2}+`kXt8F*EdsZl`0vuOG}<*ompRbbmP!ArfBu+h(A6EjQd66 z$C*N*xZ{HkpMF=9lOZ>9;wQ()vG#Z5x1z&*7zEG(3fg8yS*PFMSEM}54o+UIyPeS^ zVO4jP3Yi!f{Z$$rexpby497}2$ z#;O)e@9l>aSBZCUx4XJ}=I2(%vt)9?R3uQsC$)c!-!=4e6GV(Z#QVc^t{T-J^zK-{ zUUMQVJVS=WXqiZPLcdjhVp#POWj){dBTPmtoT6tC=@CRdzh;-qwd8HqKZ6umTfUWX zH0~_%b4_$#ae*n2C37_#hzhZSI)PgI=iJ5uWY#S@Iu`cqp2l&Ku2gAFev=E+Gvgcy zy`qfSsr`~pk*|${{m+jpHf!qIjpg0%53g}h#mfjN-=#jeeG3|vhkq{XoDGm z2$fj=JupluUQeD1E8wZ%jV9RIu>6l6C#rxv5k_Y6Or1%_cQ^>SB<8%S&XwNLAiT32 zr8ALBJLskcuPvcaop3Vlr{q-Wt~kYy7MX>z$2ZmthyYv~S27`1q8 z?fKCD`U6C#OLR&*&_AjG;k%#VvG_-*#GnY;s8FV^U^bNkEpcUoq!;?1 zmqXcB8f(WFQ@x+|z%t(^Av&U5c=0@unh$j~O5E^R{jaX^Z$gv$y!X_fkoqwA;xzHh z`s{{TJQyb@bW?JqiJ*Pq;nqpXqLsGZ1(=ZQDA|lc22A;24wnN@cC2Zfl6OskS#`!N zGXd&-p~sQv8;5e4x@mr-vf;H`v0euhc(g2Dy=~+oJ&?{k@H6H3P{y0n_=9(N`DIM&3{(67iDpjZKU-uT`v~fS8*5u}YVRmT0{npq+v(}Q{OYU3 zGCGU48niTVPz!0pg4OqGarqxp3)d}TCx4#`3VV*b#7j|YKHSIQj14ZMbOQg(J$xOj z@ThR2HX+g|Sc*FmTWFTs-RVBlTOX3X*O6Hby&#=l^zt(iSp}eX>?z(BF>2t>eEHeU zTM|nirOJtLACJX{n^p~^=vpm)n-%z(o2^YmS$+a3)QCCe+unA(cfZ_@G-r{xN3#?}Js3>`M`#*LEE-DD&*SE--wuXDv}2n!M+7pXmMEf6_M=j2mt{ldm4R_+Sbv z{E1|8i!7s|Qp)R|Yrf3Q0|j37nBo=^wnm6Y6AN{)U*hIQFU|u<5Lcc zh#%M_AgUkzAFKEDgg@x;#TS4Kh>6re~K=Z3)gfZ*LfsrF;nX@{r_d0(48E&N|E0m6(Z4mTdUvDI^O9<8oHl0|k0)RLl=5O(QL zVEpGS|G(-0!D81InQr*ADg7Yr6r#+JvSfSV2{qUmrcmKB-Bq2=8ONUa8irINLjJI% zou8i5Bb~!;u(CJ3PT!-P%25FePw0VafxE3pgrq7wOhQC z2t|>c7F|wJ8-TS@r89c$ej!)B&pLXvK*nFQrxB_yqwn{I|C)70>{z+|EG|kYvO)px?bSl)&0)6Q6 zCWZ>nX*$)e@M0y%NHJY={rF?a4`(9H*$6K#LkMccA{IC#8y;kx=2KBwy0rF)07?CJ zy?QzY9<_{=Vz7QUpIknqSGY3El1^f=QmBSCr3bg406G_PR4b1zyTc#r723mid595e`L^uLZtPL|@$gq?#J*CBaHp)RH{(3(mkGOiCKKbc)3big7DSF? ziW1WO(uv()7e`7?kG2}cZuuy~Knuyl``ZuSu*e7Y!hNT&-mfnK9tR1?>9 zveN3sTPg6E6k-PNQ)jlvkhN>Go<~MzwS{*+lWxZGCyXV^{32}uE*#B(%=q>g^5Qc- ze!!smTW^GVY*A9P;uECX9g2yy0U~8^h@F_U#YsYsh)XvrMCTT)8z%5L^P_%t5SbL? zCvzD!KMts#t_0A%I}hOzt;@ZL=N1Alm_h^UBiZams$2(kA9e`Ppt#n`Op@pQ#LfI z)l6ge`mDb)DSn*}Kgi$`DUj$M!Pz|rVA=_}ubtj0N(KCYS z8`hKYjz7U=%_r6C8A1GZzObvmyMU4{Ld6h#U-#t@t(QAjqbE6kEHQq?x~T%G*l8ta zcrmo0f`~i^@Nn%Po~7(e)Ys(hUs@?n6*0Sm`jPFMl>1Z_ zi;_$+uS3uAxexZ;_;*o5%Q4I}_+MXpAxFF3p|?;I!A>J06G}!2HTtEMZyXQ)$R24} z_OqM(|ApY+)7lH$2?^)a$~Y(QR~&Zj1oNjH4vi)s-?dMBXwKq~nX7-YwbBHlz=FaK zsag~6;hr$@GF+jR$NKbx{<9JG#O*q}K%MlaYxWoqnPsUbr+y_V_s(BNv<_&87Zk0N zBjf&G{a?%nNs@G}n2!dQls!r(QRCx{Z*pexM4I6HvnVG_N91PJF;!U>+uKg}mT>{j zPOwP2y2A5=Q>Wm^@x}O=G31`_zUMgAkC@(|;f!L4{`mOywjwwZf{{IU+eGeg7=wv* zMWSOB7e4Zp7IL(A!zae++Exn1eO*#o>geAlIufV-dQ&9R!bfgyclWE*RcCte^A%&d zQrig*iHc+4;Y52$Pz}v1J>CQ)fDoN4Z7(&fAO3!re76cgToFd+x*HDimqBa1<|k_F zcS)NAgG8uUKz<9xhW|$gv@EvcOh24TW604;w06a4Pz&_)&uNeKLhWd0>vqH#`Pt>T zc0nPWa32AuCzPcqSX)-*3FuMhV{Zib4N@}5(C;V+#21VuGSK6smp-Ndxx2U4+v{J8 zvNv#%Ox_<-7EeiTQy@jXd93VwU_5;8b{YBB8I31)fwa-@I5?=K>&PNuUyd#pOtIVp z^k;Bz)3hs{Y+10w4`VNi6m-Ub2jbdm*(lQSpim$@($wjyokKh24kf||bp+d4WPZSp z=XeWq(&7fwL+k45J_u|aT8NBN$h|6zu2S&Mj2_4`SaMP$hKr;qOt!e1Y_g`NdiO3m z`kaKY%TOveXyHqAlt^UM-%a?U^^*KNjTqPa2xFCU61Kn>^0{Q`A9Bqn@^}yYIqXg5 zTrii{1C2J6;7K!K58{K%nJ>}ucmmlj6`*VgA7(qgy2uy<2O7;tV5$;x#BV)rFY`1| z)4tw%cI&sEAu9fjqIjyigD(B5dN0s3V8h{>l0A>Uex}E`xx8;UeVM_jVG>+9JEi%aIgJRjdw?h7iUI7|N=)9Qx^cdOJhM0%;i( zR9Pm5E>^0DkFDMkp0+?$I-1M&d8Fi=*P!#>bZnw>8f{yB?_= zGiNje#&J9#&6lBgDA99(>meKhu7?mnDz_lFBVH+0_)9B>1iAR+o6q!iv9z7pVKrQ~ zJeL%<55nW>jA9Q~vQmy@3#``%9;Y)W;a!c>1pH3PC0ji4)!{P4VV%VZw*8p`%cs8g z)&d=7j$iPza2Cv{;|YD)sp~tqa5D%x9bb_q|Ovsw$t|Z(}w5my`|BV3u^&#LSz~N z@3L9(u&^x^EMSPdNIha|1LOAH^j|(sjJD*O%82-h`kYRC5no-xF)0qKLoIeAo;AuVrM|I zFMBVgBPeoN^t2&NBZ*yoYSr}MqjdAAUC7da2=`q!gkd4cUw`JX_=KVJTRieC9{3z}q1&c{F-z#gsop{Nb zud_jY9N^P14QI1Z;P{cdu6~9oMafu1*eUwbu=SRF9?% zQywB(CPSXwRsHD>BU%-Ep!DN($=VHOwKxMgGs_%@>{0yogI`RkMMd!W41|1o zK{$Zf9LKo59$Wt?ZN?l%kMle3RXqN+obluGRRuP*^F|f4*+kAU=4Goi>fG676^GB* z+GSqlgs6yXrwiE)>fnTTppwBl-VlO{^pV4~(qBXDz05Hb==bq~KhOG&5<6r!CtubB zYSdOnb<9>-xFwU4LU^`>>za$lXJ%1oCDb_m^IA3nW{|2YJFFWN*>^PA)obiRBKsPEY18FE_bIt#EJuFQeWFkU)6yBXvZKue85 z-G}&=d8%&0-4t*H#-2iw>M*yn^^BPHeK*vUoBW~xc}rO3a2UBU`~~RT9N+||q6UYr z+28a{Ts6MRn}l(qgvLA>qBO(2f40G0w`7(Hq@J*j#?TiOgzt-XX)63l&qo#r7jA`F zK^q_wi&=t>Jv0!0%)h7Fot@41hgIy>D0!&bm#Fx+y+w@xx67hSBx!s@UE;8juB*?6 zlE23lT$m?lt>KSpm3n6>0fpV-v0%Bwtd>MmkAV_mvjHmL)9YdL$|R4Ae{mm*v#y!8ven5gf@-a&+Jd2XdCdn}Zt zd<=&2q;l>?jy4Iy78v8w_@+1f{0nMh40mkNRlN&zRO+P%Vwy@|z$uH}Gk4N{?Ld59 z&FT%I!a%+8mL6NSmKO4t*fzP?Dr^Gu4oOJf-O@q0Wbyan-H{pf*<0UjF@{WZBUBym zC@+$EJ<7)m8QC6C#PnI_P4_2C!jZl{=wF=V@>2{i!YYdgA$z@j`Nke>R?YM#`-N_6 z&xlFQFn+iu01ohs>ggRM-1+Pu(!j>(GN`A0NiGd~jnkj@oCM6a&=Q^~5L9vQjxCnZ zt|*qDx!f9V$^U8-^&v`_>o0VSUDLggsV?Z|3;RGhSrIcyY;DKuxgZ5f<}&H9knA6n zXg0Zs(PZ6sZp!& z-#4Z8Z@$7xSOXPdrX2d{sJHLk>Vhx^XgSr9px4{;!JATR_a)%>w@p_6a5pDwuEmFj z_P%Y*!?6EjhW-E{LPl4k4244GbIay$j+k4C0oIkP*H8xs=9ysLYsVxt%M*osbEliT z<{N>JVJ2ApLc2qG5D1RVZW#Dc>;*`*6VYk|$+*3y9o z^z1QG%xx^ji)grz3xm89;7it#a6l~XfqERcbw`!T&mH^B6bgxrEnmk-GSLjM&eUd zW5)gmCx4C%+rv4nbk^u$l}ZbMKz5ISQLNQ>?E`Wu>LQ5AyVVyj%2(HemH*W9 z9OuF@b-X5&sS1vjjYm9LVM0Lba;@#*j$*iw$#}CfYdS{4+%nJwo44z`56u_@Pvp*O??C<@T zUR|4%8m)CMR3~V#YhSLxl<9JI+Qs;jR7|oP{EuO8xm+uIej zFVC|x(=OgGfsFP6!#YZ^a3=%RmQmR~TCv9|ntjU^Z^p{kKKVQR6yc8W{MPX_ykOOc$r=2QX5x?U zeb)~6A%NVHM4YZYDgeZ>;3<(G+O)gGp4egDX0 z^zUgX|8NI-8fG9ndq#b|B!3Oj2hl?rpP>eCqDWc-^TV3kI_iQvn)0SVb#;K)c{{5ls#rt!s4;P}!as<5u zYvXEIf-HW-a2QZ%tP4!{fBCi21oO74XUrfNu!UnGBy5X6892Cg-Vdc=CKU-if5sgL z-X3`U8?vou!Z?v=-a)MMDV~^_4NgY!Qd4Wow>-VZ#F7g_M^Ev&)%t5AFfS%8i>mqi zPw0$L%u+*rjX>c)0FnNiCxm5ot4j1P8I3g0w?ekd$>b`=CpYqqsl=R$ZP^l+19E zy0FEVF*~0J;2^!CoZTj48Z9R_O37&(ZjW5uNlT}v=L3aIUslnxv6?*L@t=SJE%4a& z%$+zAwU^YO7&=<%IeW6LQq_DdsnC)7`03D6hlo9;VP^zfsY@8^kvFL7jD#@_Co7o_ zWr#*J-txi^3&6ZTT*4NvIBUl^2@737A4@2REcx9wNUc%v7kAERI?uR9gA?=`6vlWu z0r}!e1dOAgX}SrCK8)a8Aa|tY!TH$dkQ?-$*m>Z>H5IeN;O^<@s!yXBODfCOPnX*Z zOyUwZGldaBrue505KH;x6&+*%;;yvS)W-JH)6-Ew^y^M{q4Jk3`=o9#*VL5+D-u)- zdaI&YsNU<}u$n>tdKKaGx4TLNr_BT;L0w_~Kmzmhbc&7wbR(aNHes)Xl9tBB7J{3G zWkW8{-M;s_)}AlA4xQiaH0U3oXt0mX4)cv&Vzd zPj2{fK~Do7BgWUH#6RTTeZFCgO1=B0WUiLow7&yamqH zPLN0@riAFIwNZNIba2SH(;JE5uupqEhw!NB?dH&6@>xMEUx{C9LoOJin=e^B#T*kI z4Fj^1c^tt{)SHo+N!sGE_gNgg)JK3I+Fdb2!1 zo*AceR?mgyeSo%2p=KtSYuV#;=dO9*A+Bqi#J?QZ-<}xA>x^}SA4pPXq-z`BZFV;A zUps~Dy|qVp^X?mxlu?c*zlT*q;)L(TvpTdA=;6!MDL15?46Wpzd7k-NKni0Ev&ks; zQg$i}MZ~AB5JDNRmiVC8OI&Exg^#Ya{guB4m-q@6o~p^Rk^FRcFw<)N^v& zP^hkp#yHt`af|J;*VmpUPHY@99gw!K_&R&{LEs#!a(Hq@xuGz zQ_hVmeql0h03t@gNmnqi*yzEWy0t|%-}>cp^Mht`a&yKPL&Y75wGHa$zs0i>)Do4(1TTAy@+_*$cDJYS-k#07 zQZoioB>_4Ps z2D=TC2>9VSsn9c}Hi4BM{sew@mpNGJp`%}Emx(mtiGr1$ZOuHZo!O{OHxOv$ckb_> zt-l0ZF2zqQ&*-W|&{wj;5AO!-GtQX?O3^t~as^?yuuWDV2kQyoBr)#-sbO5#Op+2S)>9>b+Xv( z(0>?lb6nU`h7vS1q*V0^YZvuCHD3XVH3p=3cpg^cIg*TKK3l2NAjl-8amNoV3lUz+ zLbL|m1xpdU08|GaWB5GERc-|2wH4T8bKcoC@^XGYbJMy}yR*;eJ@rc%-D_(j9Xk{R zBIig-GjZIayEx=3Uv_P`ISj)Le{A1&ht5XNsZoeVtCq`x6Esm#P(nU`{`~q^uDPjc z8br%qtxuO~@qS@9`t+-}Hy_s%z)n;ULgXJXBT^h3Sh3ZqZXt&0ONt8NyL`EGe&Jkv zDBCr6r_E9CNi601z_R~%VZ3+?3MT|W&Fe9wR~>qpSon1GpQMStmp#XhX5byo{tYFr zovx~ClaKd0`3!k>5S52eW~5t_uNDC>p64Ty%bO4yJHNpDgd^2=+XYU*J{3$ss%CYp z87~1l;aKGQIrIiK-H>*Wex9GWfSEH0_n72LFS*h_r*k&Uoa|d&l_s-~@+cSm zUZou!%Ud8dZUTg!MLh$%`3cTv*VmP?adDzItD%?_`b{nt@tF%?=8E`gq~Cj!sF;^m z;CVN^C5#o~F%|OLK*F-@Y3W|)U(Nc$G*_SXxnRt7c$BV08SmJ1IpuIpMplt~w9@(Z z{sA?3eLVye33A1&c>sUeeL_Se#UxTSugf;q;a!d0j9*YwVpLdVL7?j?8Msv8fDp(xYmE(_f!}_ZDt5c8@lnl)_TjG*)88l zpk!rb!@U5o;(GzT`Dd`en}I__B*Y|rd)NokNzw>NNe?7$HE5F3!62o;M}WtN%T%(e zA=7V>W!D4p_d66}?Z?AUU89v;YZ&P+i1l;Cn+)vo%}+)dCdOdEN5#@04vNE+mIn<2 z;aAbv(s)zyQLK){;<%_vd3 zoGS5qrz1Rl&5VaN-Cs>p`r^Yoo-ZzPhFIqpm{ZvT6D}n=dWN{*r=4IjcM& z`|qa`616BSgYnB%h3j60LXA+h%A@c?*YDp^;3?s=d$$us`KDxR5O51!KV0t#N}?s^ za-&l=^^KZbe?RGUL<4>u*w#<3h1FO=^YbPw0ki+tOkg+*(owGke9k{4V2a(EXC)-4 z`K)vVjERC=H#?A!@%?Cd0JLFZUp>~rKgtzy`*msX3Ko@Im*lj!Z;PS0_M$(G zl0n7-El)e3Cf;6OQcq-7wyPW3WgZ}T@|`x?tX`W%=ea4D>e7E9Ma3oLm#*>tl6AV7 zO|=EAw_=fFKFRYx1?(!WfX6Mw-8y6pj0U#>CuDn;@G<3mgkSX^&&lTtQQeQ*zX($X z5*0dW4$=vx%(& za;w&UCDGQtYJ*EqP--_`EP$sgni~O)T>u`+=_$^7uYbL2F>Z3yi0Hb{0Ef3_A+VM8 z@Q1pNG?A@=)^9;Xo5s#nw*xi8OCZo+gX5Ce@vc6DjftIWX@?S})4R&mXfs`=>B2z& zE`IO1V)`1NszI}C#I7W?9{AWMF5LSQN`pxT1Vtp(hn5SAJPJ?zQBqTfTfCQ<8gw3o zY*qWDZq2UCzo|NEQe_nKE_B8M0MeNT)FG3lMIvrH9A#7Q;Oa_~s+SI&*2~DaLU~6v zFAf7K6DM}!($d-arz~L~9H=Zju2;jz5f?4HneyB_nk zjI>}XUB*rHms)3m)9EQTOrHqM&npKoqPEz*+7>U_6%AFW!{Wbg-*rWPsGi;(a z`PO!tMpHMPk>-QN(zh=xQ)!3B3va+KVOv`Fjqy)YJHDJK4q0qb8#4BKpCA@yKCV*( zQFW*QQPhI;YUU z9t#TSyZfhs!7L%B^Y8M1xR+Kk-nO~+n%}>#IbV=PNmP~8$ie~&7$?Ic!fRscrJ$vY zx+@}t(uV5{~gze!OsY6av;As&Ihdg80!6cIrfOU%1{`_pQ8vZuG#DWa9`v+AoC zyX|@;t|$5P-VD5P&Xc3&%eZ*mhrIvPqC?){y5uEi+bN@`)+*Q93h`0tz!UW@R$P_~zxe;TG^y#v!; zfo2lGhAW@915^5uw#Wyd(|w+Tlpra)P8YpNVt z#E53|I>bP=y^IaNG>*76tc3Tay+IF-j#0TFk+`vokB}0|M=z!VA0;W;uFVCy$H?~A zn;KDTijfD|hsg1+$bkp2;X{8pOr~oNP8V zxAOY;z(Lf~p(MKdV;~+sMEy$GaDVKB_DtUl6)H5O=dBN_$}`ZHS<{4iee@MsTfOHmeO|aB zN0U-XJ;_NlH1rLc-j^EKJ8xZf|JuuLP#w)_ z)3E$qbzA;OhnC3^{lH!ru;<~jAB08zwUso6g?CXzgow|FN7>XrY4sF1)g@{xpvA($ z?jC79e!p$vl{;lGn3N#{d?4z8bwZc>zL4?Gacm-6B?ZS&dlMXKg{aPSa>>6XT9x1Z&qiZx-{M7_mvnt z6SD#y+)k3!czpM#(#*9F@)slYX2RjspY*Vf}8QZu>pi8Y00 za%~*}xap+!UE0aQV-{=xn~S*5U~W4R*W#*Vl%fkPHT7uWtd+rjA7(#z!Jf4iW<0Zy z8Q|xlm7F4lWG7J|T+M2k+o8^?`l<~S0t zL8sPdmnO27gyBADbtcwW2XxlMYe zKC+}lMBY{)Y@^uBdo6t0q8Cyxk#0a^=kuyT#Zu*1yG`Y=6ZcWhcp19QTZ+_s>Hyi( zJ)SdPi%JcS`UznDtDj7KdsYjHw;#8Eb)o0HlhQXe)wEL&TXYYhqpMsXmWMn1jV+VBOu@wsk4QEmcW&Jres>Lit`hNqMNaP2phU%l7qz zj~Fyz#mV)ag(6n@BxL;hB~d(+H)Ed~9v&`9%I}Oe-{iW1L`eAM{@1Tx%34M5em~As z1$zD)9F#9|P!xju&-a2&rrMaX3K-Uon;+NZ`}t+>O!S_(VT`iTcm!y6^4tjE!>0j9 zMZ{bW(%JbP%GQ00sgIZ0o}TF{Tan≧14K#C_Lhl)gBZUpIbvm*RKiWoGmUQP3b2 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 mvO5zK@f&Bg1S(0YGWuX^e6vrQ%7k<; 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 z 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 zod%0D9E6lK}$qRh_bN8slB9CX(J8# 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 diff --git a/docs/sources/terms/images/docker-filesystems-multiroot.png b/docs/sources/terms/images/docker-filesystems-multiroot.png index f68bd1be7d940ca59729e7f25e6d30a25933ed01..5e864273f33e4b027eae4a9f46f618c9d14e08e5 100644 GIT binary patch delta 54344 zcmYhCRah3$`u1t06{H1}lN6n(&Utx3#&Rv6H5z)SXEzev<)F-9Wm<%#V_n1 zn6*LpnOHF17p3afze+?x;&#Q2-Q|@-V2Vx5XtMKOeb$b3lZ8`2EaQ=Lx9yaBU@7$L zoMgPJoEP#5aG}m~aXTnfN}JPz>H~jnMv+bFFBqyW<<*hJ*Chp*jGkgR zF(Tzn%R>fnR#djcaAj=``Ks9;s@CO6DU%lJGnVy?zSJp6nbOy(iAC!>GeJZl>&+tC z5WnTcd6d<}|V9p0_&wG<+h)EjNR|dRgs@n!;YwM-`p9 z)EM*Bbbg|{vVU!~X8+1bl&G#B@>9{W^Ep`Qw4_y-+ez&Quwr39*XpO23uw}gNbc=# z3(3&uKSl_X8rqS6PD1jggz3?LkCP&-ElEC*glR@&YLU71MaC`ta5^yo9`A&BB>r+@ zc=c1q^!PtnemFu)(mG|{6Icah9LeY$rby1ulOAz{kQ04_Se`tn;SL3%7K&V-7HJfP zzk6Iq)Yf>v02ph%!rGhKsrS61?ql6!r`>7A#1J&_x32NG^$IAar=h;JJde)fIY!uL z=d1PiI#$+&jmXk$hMy9r(&$D)FJBu3a(B)~VA#@wb%*?nTkjDq!?8jS4hE4tc=u+y z&MqZJhe;U7V>;$&d^VVZBnQ8g3kZ9QOL=;$x+?^g1E`95_7*3i^;oDi7UsncL#hga zQX|{l*KJRBbir5V&zv0L@eB)U=GCSuW1pv@PNF$KNArOTc~blnqRKI9@A{9#E5cbH zy8=r$-p-85hrrbN(sq&G-yus0eQ+~^KVcN=URo;&{W?Bss@jA}bUsK7s3s# ztPD)0V?Vl`nV0`iZ7!Z=J(LzYo3GZJb|1<9KkHWmbNLExe)rS*YScCY(Xlw&Wc~S@kar1HdZTp+b$75tl1N!~El^UtoO z44*OdtG5`ou4B&6EoRk3v9PWxRM&1lHRX|Tg2yZr&y}K(anr<|`;8EBaC&6%4%=5Y zv2i6qkR4r|fV;xOgD>Nsf7yuHE!+4is^7)-=pR|?#H6olmE^iW$n>8bZ7Q`(d3^ktP&~sVe6nQC1h7gkDtXsti3zD@zK4BALVO?te!NMsiL&sV7 znaCZrLjujWm_pJSKHYs{Pp<64%`3uTyVqW%Ej!fFT+fN;g>(6gbmCBT7~ZM50MjM= zqur4rG4A$J(l0Dv)N#j|wWf1uyQS0Y&MkJ(-~@}c!LjJ{F)p<0^xFphh@(8+lCD2r`$7=#&8djayw>m?R9eJ|dX$HtUx zkj&8bzhfYWI3gt_d3<0h{Dk(?DIqHO3W}?Jv{WFR}n>H_kQQ(TkvY zA>`SmO9fP<+c1p~vF9s-^)BL(3N%HX>8Vsy3QEAMPd6Y~U3d1x<80qBk#GJU07#M{ z$%VX|j=~_MJ|Z@;wa>mAPXZqaMNv$IDfQ|I%HPAY>>q}>;NXao&5JbR?rF{$#uqPO z&wRDEvHST?j!cRxS)JUxS`t&ElOFl4rKIc+LbcKUihW7a087$HEgBrLk-^=F?DZ!b zmQQ|AE%@`3%~HHJHI7+9)e3R1je}G9_g3{75PZTiahioh!sYG*3zH7<#{TLofVXRWUf|Pzai0_wL-Dd)~?HY z2mh|OYoD41B2F^>q`lDK!=)d*MRh^V8-Wig;&)+8j8r>&R$FuWa4|SLK0GqvlS$Bv z*dG}_3fCS?gS#^CwMB)%hc}lJBE41SxBQp63Q2VMFUc3$gq~)Czo!HU`;9qytIPE(W~Ieb4k<5VW3j8GQi}S$HOyn_pMQDz@_r^Gm}X4t zi`SfDe6jAP8k&w`*tbA&Sgn&5pgZF6`#YI`ubeuj#I{`Ij_)}MFSve_PFudg!tMZW zg&pkHw%2R#LAun4&LM(>|0GD7UdYPzG@^w-EJVxIR} z9iI8Y?T>8nIfA6Y>$UTZM%ZQzP&HG0mwB$jl|sa3U-KuZ8j}r6yks~|Ifc5CiTy)8 zZS2-g@mZMUuAwv6uK`YA`^D|6<>kHc3}M8YpXW)OXX!=L$J8!({3j0E>Mbf+oAmIk z;OWG=tfDwlF^B&g5gYT*ws_%BD4Cv-F$h?3_b9T^7-Q6enO@Q!JyGvrA7{F}QLf7{{k6i;HgcKkkm3ll1a~@FE_tCVwnyqj6E2(TZYi=roCbHQ34*aq11E6OaXRsIoTk6pBav>aDb5Aw^AM^TsbJZGPVe$+n5S&`R#i z#%3VpI|XOkNH{yPA*agMUUD`Pyd=U$LH_*N7F`Jb@)a4v(?gBbuiIj|$wO1~!66yf zx=&8noa;(;agnDlNQUxCO1?_wvR{QvK>ir{baz&Wm7~8?{UT2~gywI{DfCFyS-2>c z+LYF_XlBV&(8^4IWoHDA`ch%^SaL)z=edc_?r;;2-uV0$C|35asWSxebw_zPCtapf zB9r-TvnCZnLvdIPLW{rjQ;YcK+l<^wy%eu2hTBor8&l$CG$vI{e*LXIrv2SO7%~%q zShVS9@b-_BA5^fuRn#_tp2uAS1~}x3sCiVoLxs`FmO+&Qa+~YT^+JNZG|vQ?A=TiOr0r(p@A%QcmKWvcxk!<#DJx9B5&HWyF#$<( z$O+t@oGon=a@+SbBXP<}LFxdEngki)b*b?IF{;Sn1?!rfUCr9KNW{fTM*ZCzY;Q)~ zlV2>!DBU@@x*e5<-X0EiF2pLqv#w8nlWKUM*ku*aHD^sFYo`74k8Jg==_hbZPPBNl zo}yay)wG@DlE#tm-1sgSRr`;NLHfk5y~+z6;{zLKy!3TOX)A@ir^MXQFOSeSB|eI1ouM+B za$3*j?Pjp%4*=c<@!<5kpP62x={KO_xHjLG&mMFY&s}upiWXKowdR!^LR7=$P)?c5 zErj;v;$W`O@MvOl`dTYll_cAFE4O$dDj~9>>fzgC|9mfqFD-0);D~OfbtrVo=06{u zD>J);3O+%{?3fGlZN{SetyaZo%wflzs9NJ5;|zZ;WvXK( zm9RARDjZ~Mv4LR@O)6oLRYq#F+7tus~joH zF8-BAAtsAL2K|2EOqG`uDzXRX*N34JJUS;~m<~`^9ZhE;Dp*YCrEuhp`1;~&uV%c* z*0cpuRcY&5JQzNGI_Sn=UTd8H!{VFx^X|ss+$vhGZL$EwLt#9~Ca%8{3ANLwB3+4< zPpY|^BxKAP-Ru|~?#$k=U!+s{38#V+;Mpi^TMnxuST_a&@GA8C3EGx1O4!A?N%=xN zk;X3819ygrb`@xI^(<)PXgo$!7?+n4Zw>)WC|!H@iBOp#gO~Ofn)wfZ&3scBfK+U@ z?XT5pir^%=HXjkcqGR;eNYK6CA_C~(@?%x6%3@OHbg%WzKKvGqCVc}(yoa*7+C6z^ zZW7E-8p!+^8#g6b#qhweAA39V%cBx2yb;c2UV;C%-Os0cI-&{97dA4;82}O=h!1?+ z{u))x^6N}gqW=+61Y9rHCf_P~MyTsRW{*XF2h6^1fO`;8zyxRit87y&6mrP!jMk+<3sVXQHNo#ei zZa)68*p)C9uKDH}*4d{=a~32}Ves;l{)>nz3j=3+znXVR8Le0}-NoiNCLa7S(xK4c zW7hH-hS#n|;MX??3W$lV9RxW(tZjFhllLy44J4m{h9qbVHx_+m3T$xN;yR{Bf73ve ze#0=3yZ`>Bd_x7v{bOmt{;p$NaFaO3=aCx4mjg%w8En^yGh+mC;w9n*(|%g4oXRQj z&7qb^N@g$at;|}yha-a^!a9DHH-f)@f?@?;(?fPv?IxVr>$ZDe2zgfK{n*0Hhn|g! z3S=mp<0v5-jYiJj-KYoYjg_46{HxKwaFIffi5`MKv^qa+G-eXt*V!;e$X*Q2xxng^ znTjGU!~&N~p3|VQ$g=c2gpIk^+HOL))W4>u>oLmPq4`rq66_T|MRr}iYw5* zt@{&^^PUP+)_);#;s>aI+HDy^floQNgCVH=eIhPQ1^?-8uY3`d{(k$xaC z-XDoNvzV@qZuPo3j~2|MW@uPdJjQ(eoy+bOZO;Yl?-7dO?$;&k5p~f0M$heLIxRGBk_sx*QH_ zP5~CRcxAtHY;%>Fzi~^*wVc3_l;Y2C?3??A`Jq$Wk**+`DtTi+opD5Ip zYao>p!S6Sor9^OK)#U6H{4WH3dV@@X^>%0{&v-&EDZoY^1Ksk**|yK_pQ|KKC)*BMgFvzcjDOJ1T>VEj}ihdT@x(x(z-b&rc=clKjAo$03 zB6++i?U)|C*%p-AlGgKvizuRWwd&>$2h$52xQkSn?)4Obr#CPdvf?YjvXIZoLE?%Y zDZ!7?q+$wEaG#@XmKJx_-2qtr%>=Uk2Q42vw?Dgb!bIhgxSFRY4EDi$u#?JgpOc4U zHxPI49IdHQJvq^e=><)t2P$3g8ewSFOYc_;;w29cEuX~r|KM?|*zQ+rmT+N>Zdf?I z3!QFv$ZK$WMWMdb63bP*ye|73KVqzPj?MU9f;r|9Vej*fD=$r&Ts;uOu}$w2Jz0m3 zJ5=(47H4u|{?DlmFHIQQ%%km^Ys=^h)osIKNK3fQ@tHd#!e`ZdSrHjd> z2r0kEGvL?j7ILz;xOrA#f+#H6N9uKtyXe=%w!*&ij@8+I&wDni6J1L z$%P*|JQB#_PQr8+GT6b+l$H~Ekw8jE4_fJb76<3Rz?|ZhiC*G#gnL{t88_6u3-I+r z?v*PetM@lrq5GwN9*O6V2_RuIT}VnY@zf$#ot!w#&E+c_5&b4dFI9jm-9{r*JTtioi6c(-ZHQ5^0!H9wU;mSNc)iR#~4MU4P@h-aq8 z-Nk@!a^Ua7ad{tIX3C%5c&wV1Y&CZE-8FN3$-)>YQ2&x4AU;Eg34N1SV+Ns!o35|o z=_k%(Szk6)f0Zb>{fKVhs;%9Rhw@Fetw!ZE@Xo;0LYOc@Vx*UyiD30F@>5pN>{*X_ zH1mZh=!3ITw=YqPfbKbH3uNUdU_`h8oD-#u&@*sFG`kpypz3z#bfk`QClI^8WpVhZ zR?_Dz=waq7DFSX<`nM^OkfhlltDFBzN=yqPOR?J<6@{{$dzOG@=*i9xQFknA z)PTwhQI04vgTu%+d#CpUxGs{Xr@wY?O9s@BMrX7Zz2NVC@INftzslDGo>>%b*eN-UW{=8A2Xs3!!lIs9{o;w?@cc53w0KSm1EA!vJ4$DtKE%*p)`g;B`VYm(Qr|O`> zW^~IY%71o9_}rGS;PJse^a6`uhzuNcK27&2-8oYsW=R@Jsq>mmU^JV(gfuXtaPTa=;d+j#leK}cu{eLqP z!ekEs>h>YNg}Vj!lxJo5E+&3Z$Rta9tGg`JeJ*bNj>eN8eRPmS=XXN1gf-(=zgZty z=hHE@(BqT7E6$37&y>C<*!|IrJuT3LGn>wU9`(sL#On&Q{x+w|?{y&ockc!E2 z{%!pby`F3KZ=rr#8FHXSO}s`}q+plal3G$5_-p4kwu&SRF;V_lhMzC2vg~GCr9JU6 zFrr|xP~w5r&Swl>@XoEm5&7zDoR^K~ON!I%N|)^*VISZYb@sc;;yS8G1T^4wBFu!( zZlC90JeAVj3n0ZYo<9gHT0#Qpfq!1}jm}+f--XmKQ(nfG1&a>;C87C}64+y2ig4!u zbb=hk!*%=7aq8yc`b40$Q)Cg20f0z#{m_O(?287zce+L>Vg*^;DkkW1%$2&vW+>T6 zv_>Zx$t5*Rf>rhG7Nftk))Q4a_h(vUL_^}f(1$vc!;`zD3Y184&SfzibRr?LZHHyw z{p0PrQr$6MQ$uz#>?UeV^oKyNI1xB2;E^jTj3p0#6kA*mnt$@-2wjc%{XtP20{4B) z0BEzgKiygoo^Ex8LK5;!G=2;EeRuJf{^#Xt97mmI;7*Pfy5}!k;dHA5U16=$2XIM5 zKms;iSLJ3dk*mH)s-B2&$R`$~%jHT459p{=UCNfM@cf2~O9qj2 z-i7jioHu;sNeFD4>N|rwi?yEwOp2l#-lI&D;7`u(aO5|ueE)W@PdSFWAg%DH_P zW}gPlK`>6bJ++_<$cb0ADUQLHJb;jK^;W>VF$e8ICb;_)%_6)eHn&~F?vZN0TZ^=w zS(-5EQKMJi6eH~|>a#nRiYi|?sn2X5yPk*GBYKR124|cmRH}!&c%n>C!97-SIEo(| z+6Y#B#Ni~J#3mj?w11W2KBdH`jg`ZHSMg+swWR%|av_QDdo318H71m){U5{2@e31W zN}Na+NU0_N=oTjiINy|PG=cY(rCh}R^Ahf>s91zUF zqU_Ce`%|N6ljgDwOY1-{mdPxe2uKSeE{!cazQJOs3j2F(EO)s{3BqaGo6RvZ!W`*T z&y&*yQ*zvMJbab4IT^h+)?49$8|sRJ$A$?h+7$0vp1g4VzL+9;u?4jZoZP?R17}z7 zSl#O|KZV>tL?Rb!$=L|yc3SZP6-)5MvJ&BPh3jB6q*}IZD3+Hw*v4@qI{MWuV zxhN`zj3~@&;A_CsD0|vQ%ro$=Lgx(Q(xFz{AUW}r_|0q%%5CV{6P{qx?ph6=K-HDD*G~6<7I_XPVQ@ioRsM|C`wZ zhq}|3Rv~YQ2#dVGHw;EJpbdF8UG}*RSiw|2h|exc7ksU|PMTQt1#O|wx@#)XHA*^k z2Q{Jp5f5#U44%5Vwz*p3IAJmlpz{N?eD>ZTG^~V0xmCcP>GldsEp0M7INapfdfkFL z3^USmbA43d-R0Cv(?X3$&6eIXxiQRVrOefai)Y;U5ufbWz{SVe&K4;H04+90yqe8- zU!%u{?mKCzRTJvG>V<8!twISmZs$YH2YX}P{(KD8OL^?Z(lT-|JgWp%i&?lx#iMQN zgipi|>3E*ie8#CqxA7M5^TG3%8v5V4&Ax8{emyJ%*~;6CRqQ?TjdCiLRLs@u?_0#_ z!uj61ack33D$^yP3wVrY+nCHzMF~sp#+O*1GmIi7#8>5zRzel6b|fR3I`Sz?iq*sd z-#i@A=NIIVypI0Ej;@{g!kh+9y&jZWp){HIQ%vaE) z!lSlxVN+UWvPD#GIYw>&^zI9z20$NDq+2A<0EW1RSHLYe!4hQgDHP)tf8n;Yk0!J# zZT_8B+>!E4p$)Zy-&_Jt*s$bp1-$;{zrA*lsh0EU_cb> z{xqWk%sq35dP0BqFpw5wEii&T<%c`H{_Ww^Q}mY(_&RPIo{*Z<&;AN~zMQU2Xm;E) zJLWo7>bEo|OJIAcP~&;}^+QnKzT;}wbn^Z)&)YSDLO>gOkxqpPCf7Y^ZoUXo<654| zCQ#2QLDS)UQkm$jIAn!CGu(YnA|$nc}(8{P&X{Z)bK)h|(uyqr_Yo0v$v4 zE^+dszZ53q&`DgyHpMaTj}iy-Fw;r6vNW$F%X%P~D1au9uX(0bzPc>zPAi-w{Zq%K++?gY~x3(MCI}Q{i za|HgrmU-yhNde>N^AMSof~`-67FPx*{Piv^F-TxME>R6(5SB^faI+C1gM?Ry0)B z-xa-ST@-t^(dCC^7RF3c$Oc+5@|@3o-OrqA2g||_Uz+9|; zX+bnmRUHOnNYG*fy4f;t-fW5Uy?Du!<+-~UPp=x=>h*_cz7kHtPNPMr28?WeN;M)k zYPq+h3-_5fRQ3DqQrbtprL`f1RiO)o2PN)gPH=ZITJ+9*6DvCWF1L0VQ}O7i^KE$J zC@oDaEQ0-@C1>GVI;&XR?gr}V6EcaWzXtXCKh&tu6JVbf5B5N{w4pxuXCzwX`r3}l z-BKejv6r*E>bhQXhV?vGS&=Cm%|kNIN=!QPm-?%SMt2yRYx!X*{SbfEH zB$%eF5T2gsZ8$VOkr`t_e}wSCK3m?Ctshv~Fp`b<;eHPm5H!SqaZqQsjE|)idf?f0 z(FgGYN*i--tl>jn3Jr?j!}!>T>qKU?Ee7P=}rLL$lG z%*etJE-zoB#^rF4e8KSKp&raTTrk<+IvA`b0wjO8^Q*Nzjy7P#n!$ZLj<1PvTq>gE(n2VaGKieG&FC;FV`8ZB;Z$haFN3Pfc18wGA?H$ z%0npaed|1zB0Gzc+7&DcaN8sDv6bILN2j*f1?YSf6c)Ly5|uy~abz7Z&fjc_1_N zxs)kgTlz|jjT)V-zLfA0YMK^mQ_DGL)hZu57i7LwZde7p5dk*M0HRTWmhiM#Lo6)h zG`6r#xjY;vTiH@DNGg0#p7%Dx2t@VX)4p>dZ@IxdQla%h^P=S!JY^)K*2y*FjDh(( z+dvbe5>Km)SFWdn5)nqzVx^@ezomNXlJvr{aUCrz*nQVr+LF*l?h~DPA=uc|u+Wvt zccw%CtLt{x4#>(WucH+JyBIVpo&jXs(EF=(d|LdwQvKvrDuNo-yW*ehUK_(?v=MV@ z9LLMN-*Nq@fmE~G9F~bT4d#70n-+T~J@e8MBr7%+MS}Zy(wz8L))!Qq5JFA#?CkY> zKkgQ>d)dC;D*C%k5z2JN6ZIYo;tRh78hVPTH;DeE2ij1mkLqq_hsMA1l$E+F2A$(& z6lrRRw~ck=>rBmN5s9gk+!gE<1*^gi83{t8ITrx)nu1L4auGs}X~VgLvKrS1Lm~@u z{RF+mN5D>ieX_%+hzG@%S0UyVyqSM{cJW2hU@6p&?V$=xmnoC(UHcajLo#B52!uSN zNO_HcQNM0%iZ#$1+r>nLJ$Ab_99(KlR2y0nDSQGEXBit0??7?OdoAVc8^Sm^gB(?18yEH66Yw0`g%4YJ3ynr!Kt zEFnl>)@{49T(ZMkv({Yo+>WC3n)b(NYLgwJi=usQcfPwI{e&>do2L?h%JaIP&(YL? zW2GybMgskQpO2clxMXW!~B#VOvwANH#u?p|+aComhDC zq0cO`(4do=LZ(;CDC_P~^5aUFg$lz;NagafIBIN>hPf$SHQU|A?Y!}1^>w);hjNGL z8=c3qzRQ7^*T-{r!>e2QzFQ}xBm>Cg4QE6&CnVTVP)v(~3~*v+ZT&Yecrwa5Ee_5M zJ4k!0k@IXWu*hxm+n6z$fMjeh)cY`*-j+{i%@8XQAD`3z9QxG{MI)Ct>Sh(2DplX) zwo9uVJrHQB$g+Zv));`_c}lW=m|1av{$xvNNfG-g9}a9rFrO@j%z<4ipixN=OU5)T zE$)e<)bddJ$JzYMTbpxsK4C50GE5jPNrzULQ$x)4eePBV{jTMT}J|)BP zp+m&H8bg3K#!CW#c$#1UORAQg6Ho?`;}S5bl~3c2syK2e3b$>HV0G*D>h=*8 z4m30upM}U0H)N|X?oEJqAV_XU#fO8JiW%W$kr8M>cMzjjCxMkm&?x`=&jHRsiI*B@ zS+T^C#ffPWhO7{7a3EkhVSV;8vMASu+AB8;(&(uOP^ zOUpLs4_|=4yYD#47h*uiS8QZw{uTVg9|RUYLp`*Zm8n;cd`GO~>vcCm+iIlK1Ty#@ zSrQj%rH+j~;s@W@={91defgdY>#y#!cRYlrX)a&cXb*ja=v{4A$K`dpq*0}tDXq|x!hC+Fi6t?Yz z=SNPbz4!d1=~B{)l}))WjUXOZl9^6EGThBq#dXk*cBzs!CiKVYovpn8rN`P+e`e!U zUbXFIT;{63zmG4gs&wn7o)WmWnXV%T=sYt03djC@_oEa+Kyw}vW1$;je(sr14g+UZ z`cwUeQ2O74p@nkd9qfX656bZ6gz!nQT~aMlr~Ly!+mvZSz4NqUSUo}|=8%>c(MKUi z+?$ezA%IQ}ihvb!9oGm)CvzA(EV#=5`PKMxFI)0{3!~(C=&o5hno7)*N5WtR@aTY; zN#z}yOVH{QDkSR=m3q%hzk&;cjfU&Ul-x+PULOKRO2+?cd=K#PYs3lrTPpr;4484b{0>mTw~*0M7RTCTr-@_1=%>4~6LY8oS*6xfYp^G&`DTLbg%L`PpIS{%$Y>n*?@RacDJt|>awfR6jrBj8eD-GUvzgSNw(2}1Cj)B=kw zf9c0FT29wL*C~gYP+#znih(JV&OPkiCb9m$F`#$2)$==vdH-K|#;;v+vEH}-$wxJK z_;|}@@s3(E8qa5k$(WcB)Stydy7xgA3_B>!2f10C=-bmJ1nyP8QvcTP74SlsJXh># zYXWur0_(@`c^9(>qrFfUFjkLQp(2kKaJ`nQ&kB$Q2D7|TKtGG<#z*4?bR$;@Y8*GD z2mfvsYk0d~YQ1k={HM2Hy~6Xa6m-c7^T%P)M_!Y>|q=ztMV@K>+HL=MfJ4%S#G>+nvwT zk}fseJZ{Ac(p)`OdKzqN|6Vzl0v?i?@#GKrp@j>*_02rPGh5E&XBT68dz6+uH}xN; z^O`bh5VHEPLIApjloKVQ{+ckP;9aoAse4MltdkqL-OL9oAH zMZn`$xfne&1d|Ar+?SMpLg1%0iM10E7@lIe@l=*4q(0#j7Q$$t9gkS(P0&_x_3`)N z9cC^IYwlQsO{nW3ZT6^CwD_fV*{uW|v+r6M9xF^)>}RWwxrixKZfBRfY!3+gJU0c6zaOKjSKBEJFRV%UDxr>V#!P)` zjVoZjt6=bpve52!o@2+%M`|Nf@&Z{LSrpiahZliWA|AV>6#VPnI@Z1+NulxZUROhJeQjW;MX&0My_o7 z1Jx@W%F`_oXIDq=FSoN6V5j&qrJ#g-Zs#C!`W3pjh|&EesTh}EZeXb*_jAt-wFMqf zYd-Mr{?f*bJcV71HDk$#3^!F`v+t?KiN4zN0YSp-FdF*eQoG;Qxs?K>Iz;=}Q-;_b z0z@mKRbo79(4z640Joaj5uIZ(!zy>bV2UwME{Gi9r@i8e@@Pw$L0 zfA{(tfEPg%sbOaq34=b$(f9{e{oz6kz{^<-8MM@++#o$e)zstFI4Q>KkZD_rK8 zUhc1z5D|k*sd6Z~2OBGl;^yL~J&dPY8`~r`M<7UfVe4LyH&?N4?U;mNfpU0tLGC*X zQhPP>lSiShE4pd!{3g*%uWuv0AJVDBP0Jd-D*g$UD_(y}`}hF3!eMjUY2yC-9noLY zGaN{8_n+R{KG<6mjxH)b+104qVaN(oJ~mbw2wsYopEcO-9F*8#{wyeh>1@W$-Pd-B zsu6&~3{IRvL{OtKH35wD?Zb%)T06z{t2boX$7=Be_pL zn7jg1MZfHhBhWnaj3J0kwms|lHO1Kq{%OnhyUPEwx6oJ%SUZ;vajNlZ?3I|~s)+tUlSrrHso`U*o{#E7TeC5tddPCA_i#rH6n1T zPQHD)Y0iN;&?gsFb6KIc?o9u~0dSapd;mLP?iDXsU=?X#aJqfr*BIj4r)VO~D%Wz+ zgGY`~?ha6>u=|8lC4%sIbjn^a#V@bb(ejILZvL-_Fg)S*U)jp{^F~LDHHG?~qPoaW zS9C`&1bLoN1cb#+>_kr`$O7W)WxotK#Na-&e*bS(!n6I|5S>5;5Z{($y5_2km!0si zrfo48yK+L4{tpj7q|2YKoe+8ZFzp*m&)%H7X9ARSNf6k>D`-4IAQ9XC5C^xK?oV6a z)BDLnotGCBl6)tcntf@hq_{!g^5X6LaoQzv*^wh@c_yi0*TBGjW7l4R+2g_in*w2~ z@-I@4VZIUp>s!E0Rs_2VbW&kf$RqU03gWxKi^!2}%u~GXUO2;Re>B%l;6+zKU&iYO zBNc33c+TMu%RGJuKdgj=HUDEKF1jpBb4uSK~&xS^!H8ZA)6Lg2!c~J@fyS8noy;21DLwsMwZ( z->jH>#c!jdh{Il)Q2B(vjM(2&M3IU$r@DWze{z+E`LdwAFvoClJ-g3o8Vd@3v1uUy zwClolk9PVZUZ4A?r}9-ER^0S+^RWp)H?~=+YXT5rzh0;JDpcuRku*VM27GHXzRNR& zKJr_aCR2TP_?Go!JhK!rM!uTG&W9eZ+vg>#W|w|<-ClXVtv-q%)QY~ys&PJ^Pcu3v zOWw3{7vV;e{aI>LEf zD-Qlq);+&)r+7XD`8?^G&EXbSxO(qhGu{K^n?b>?QGS@i%JNr?_}$m?1ybMT5Umyy zl~#FjE-D%P2GV+LI91KZRDn``U*=o{WOF)2ZdbQKDx+xmUje>rLl{jG@c^}?}RxEL?gZk{xm+cCd7c!YK0*R z^Y4WD_2S?v+lFu8w6KU#GJ7Q;-G2``x zpmZrDE)(jW0=h#MYv73x{Q#&_Lf$*`Tg&w4JrZ1ZQ8b$S7|}+`eN3Ot$ZSTh~@$%IL1ddP)(OmHHS@M^c zl>`J#%Dn!?qqk7bpDp7Wzs7u(qXuiT3L8w?Ctq;t6hZB_)WCR3qc!?Stu(kM7=7~A z57sGa=ENZ%Jg@?w*5->ahtP<2uE+Sgm%dBX@3wrpyLEHU#y)z*kbg)ijteo1DRL{t z+tb9Iy;|z>S0N8xaH{2@g*PQU-^+L$Hnh_I?u%8OiF7hPGx zV0UDd#bR}3&o1`A>5$*_Z_LPz2cCOUv$2fbpn({mmZFcMzq6dE%S~`?aH7a%ir%q1 zRHm~{bGk(n<#NPiuNmF-8Py5BR}YO9W-9q|Op}iLX>A`Ua>D|X?jQG5%67O9uaNxd zekCo@dc(A|xR=0df7WvI{=fG2a|%kaS^-*KzerObH_p$jI5jHWdA@`$u`7rzrd|QH#jzW&J*kR=9kmU^Y!GM zpX3{oNx(OZ$67Ik23PJ6D-s+}+Ad;ZD*h@Kb9XWR z{&u&oXfpaNCTn5M^zlb&K>e$4MQrpK_5a8n8Xo6*My)U759##xx6@m)wt^^%vfz^| z#fy#Iwpts~NUf-Ck)N9pPy}&P<~QpGn$N;*fjP6;CrufbGG3Cji|D4wz?4qKVtbR( z7cp5W2WG7FRVX?3ZV;gKRC%8mkerUR4}4$~lldDk(a8#1OmC91<+G=^Xq6Xg4p-9n zrPK8<9#75a2~y+W06Ks6$Bv-VEFVP$Ycr~FF8$f#i?G#oib44qmXtE3TV$}rXwoIO z-pb2h%bWUcf-mpaQ2a2USs%{sc?a3->cIRe6O9bsP_ll@i$1v}WRQP(Wu%k39zwA9 zS=}3Me)!w0pN$+cJW`%D|GZ~6pF?irh8hE)*c`HdpJG!CvcIgRj32lqw#+kJQX(PI zGVbm(Y>o*==Oj~7BJuH3UGUW12e(9Qq^fJUZ1xk~TaVx^C9?v|51+^i%if|s9oYN( z1!}2jbSuvnP9T+2@UqUL7VWGZ#_mVgY`K8B@%GB_Kjd^*F&N@n$q-j<1I4RK>WOWB z7y6$;aghfXvoLqIq7yrAF9?y5Djs&xq=gR#+udWkLI%YO37=&o;v7K&O;6!Ya8aup zFOtCCl#z`-01_A6ZoVpT$B8@ezh?jWOdVnI=TR# zwg72$?Z=w&-B5LVr2>n*Fv1MU+e&aXPnd`wN7>=@{8Z|0*KoQuooz?l`IT{wqit`~ zs0-z>4Lm23u%>g)C~z;35;8&mkEySW3ZjeF2Bf=FLO{B^QyM|KL8V)|8M+(kZt3m@ zN$HgClJ16Yc)xYmy}$V5f|)btoc+|^>Pz*dXlb5p|6#6mJq7ezP>4*PWMq|z-wc-? zRT!AtMg!UeS%sHd($i=Haa|)L&hfIR7g&gs==bfZv9gBmiq$H#zZ{K;39-uUv zY;E76Ou?q13P6;f*)MQv3LE}g(E`22)qVH*>^!H$?XwryY8_03vzoM2MS0L&%M1}z zi8Filon2N4u+3Gy_`5&J!0Q^*tx`k?_{FIXya^gC^|ES|knK);W1j*8e(cN?TcoS) zT;cQmtlt}B{l3U?Jln2}^{wx9J;QhX^6RV}r%KP%x4>rXq8_rwIFua+r1h2dz}uvB z7KNIJS3zx8oeCf6DgQ08{HDL>i(@_gC8^kmFvRY_t;zXnyL>WlZNG-w&-_K%m+?5d zvh3{a!C;5Ou?$G~Cg<{&LRI5TuRY>9gO*Q4nS%9bA@Dxqg> z?C}|B7{v)5?X?@^=a-qwP@09Yw^`|W&GYjG(WV>6X?8(wZ)v_LpHHsl{PGV-OcLg# z(`A4-oX|pB3W0&AZ$W*%9W{*%8a_y6aSG{ZXj-5yCd47`4BEB7Tis>wOQvb4DbZk$ zfb7bf-##EHGjkD6k00_BEih{>n36bf^ALYj7u{M1Z+Oe>$IyU++4f^)2eOxX*!Fcv zNf`3_0enTnW_6~%Yl396_f`e~Q zrzz^~9ZD5YPU;R{udQc9GpFblX}ba`pUs2AKc-@^lRFjk07lNEO#r|x=)9#E+vF)km9Nfyv2ycZ+Uabt7*+=S6 zqUOTlDw;^t>2m19iF!VyVLvtj5rBi)W9bi93rbG#`xMi1 z`@FU6!F#*vKr7=V^!j6ycic^+IsNp$&&4kZuhz?JD1|!uB0HY{BZc_*B!G?^S9mDL z=xDA}6lQ7LRM|vk z#r?y10kA2l$N+~%KRs^e4{$hOK4VdMdnmPUIdt`bi!0F>i>k`HFN{M6kd5p7@eLOm zn&s=Rd^`;r83CS+0XYGIjX~T&By#P(a+MGZ)MnYSV=+DYb0Nf&(!xYhuZT~wIfwIk z@zwPgvJv5gCXdd@h$V04un8DH`QB&l2@g1q%S3HAdZmfcNDLyb3BX}j{wN_e7#`Zs zQ34)av_?s`+mA;$#s_%)c=zH3VL`aFq%Z8EP|aD{*vhZy=O-U!id!;M+*=Y)ZT_%i zI}EG-%{E_JdX4ahg@!gWb01jP+d7}R27SZxuC8m;MXoBKPJ{`gCJVm$-ou9|_&}%* zCcQmX*wR=|HUSI(CEC9!!4t8FcCFq$rZa44-`X+-oPUR9GElJ5n6J~z79o@7_-_^M zi1dkV7R9cJE$1MM}V+lv^w!$Y!!urlJrZcxZwse9p2C2u{IoCo;yJBt-oDgtrI1(89tU zzqHto@o3TE;{wsi{EYHug7CV=Rx^7F>@4TjV;Iv8AR=K=tpZlpWQ53LH_ST+DSzD9=}tOx zr9f1(&gLS3j|nj%#3cBGCMVpl4L*2JGVt``s`S0qCZA*9K>Pd|4Tp^ZJi0I0RyHKy zyd2O%|82zEwfHR7%-mRFbgn$5!IqR$r%~aO6A{`EP5ftb!a!cOj8 zNI{$}O-r9gh_PSuH2m>7t-}kF2e>i|tKg>iQsU{BNGv4ZxY3&siA+I3NqsHc8R)ed z*Xs_uesaiTYVV`Ax7DzNf!-V)90%MdVHP;_S;GZ(6_yTfZI-@^MMBSLZN^lpwp(&g z?6=nWB_t3>fex=6w1t*^z_))$?L~#3r(Aqjqd-h`y83xb$ZN{m7s{7R0$uO`dPuAs ziww~kMcklscbK*qN2%GigB64J+lLRoKS^!HFcL|uEF+J3-RvYm=<>S7{Y?h&8H9Tp zLWS!r`q0X?tIe*=ZfsY}Y*otkuGy1s@s2cMGo(a$RUnfRpFCg`1OlkCL>(Czc!*ub z(jnY1Z1$6FqJnJJjgWE{b8mR5vlGM~8tmv-Ps4v78+c+i>V3$3h*l@cc4n=rht9IB zvAiH?*v5f}HXpCwW4VTZkIDfE7j7pROqm~PzK>LPhk+8^75^jxJw(o>?w(PG4awW! zQ1tTjOvEie*6H?v(`wwHiG?oj@DiKGr``Wu?CIL&rrqwZP-!MX$!L@76!xDFn@Bs5 zx0OBn>MX@r0xcO0;q05D@J(4P*rX7FMg+!M#-hYq9L0m0*wu|eb32>BO|-C&3gV9N zZkx#W*&h-O2CU#C-?A!e2kUx5Jn3q?wSgCa7fE1`L2LGg_T^@8fva6mg`ONU8rlaT zHjEGBSq|Q>FIW0OWd7vPA!J&=oS;7C!0YWjL!PbQSoicIkCHncXxuE0Y1o5@OrlOH zHaZ7g@IzU7IYFa4=Lx{?97CU#QnbeoInl|*K#ZDGIpyq&aHhA>WW5C+@;-x136aC` zdFlr+hA_=~fz9AXUA9z7CZ?WDXaN2Dy>OE311FU4davsx3DtW)QuUs>L*eP3_@ zAsVzZ8&B8v*#k9kaXuKMMwmN!eKRAyU^L|q2 z=^PG%dn}U^9}AaU4R?{BFZa`mdb!zL9voLg18vJLFw&*LY4HZqQeR(MzdMGWHC9;& zT-}pIS#t|!1$pXBR5_D(ycG_f)O%{;bFXD*$FiEVW+s%w^Cccq%w`DMc(}6ozoGQi zE0s~uqM^KJMRQ)wn@~KrcBb%%(6q8;uw1%{Z32a)fsL_+hGo`Pcf}qqRQHc6#oo_# z20%X9f*A*4)ZHCRjvBp<`RlHZmR27!KFilXfk=1)mwV$`FSeu51c+eC9}**lj1{D` z1poQbU&yXK17LK1G4p7CJcGSyZc)-*c{Gl*baVM05hr&i3%FPr7cRPMVMk*0ekHD~ zHN6%V$I681jv!$v!&v4k64-qwGiX!=*dX+JnLhG}UdZD@Dp_tqhx((0alF1C9{wlL z#+(+VRPrtsFPnPK=gZjaUe%8KlVN61_qZiW9tpRB*oxY)o;x&@?*~Yi>~0Hu+^=^F z*}Xkeakgn3-z-ERocLW7F0T=UB9gkhn_ge|Ulpo&{h8W?tCeNiUR z;Mk$wSG>ko7S$T5Si=b*>^9{}jRaDr3^Io`?>24q&-xSO5Y1#V-iER%qpwKz2+%!Y zFL-qo$d9;VNtY02zveYS2>{xtg!zBflw#~Af6cyMuJT1F*Ky#kn4@sNJKG?7eLU?{ z;{}n8k+^erQOH}-%L(@xT-yE@HqOY%Sgc%x3i0tz5;YxL9MGzczN@ePobhCvw-;2*;8e%1<{%P>|)s zqSJ(nP*RFK0BV8EIJuN~Sv?=vS6uXidX?ExkICw(R{`diM?~l>LKl6R+`L)Xp(fSP z+?`?8;elWql|q{Nb_6z#aX-K0g?4_STGK-VmP97Khm#C`mqIi`j(u&YBqZp!<0zF_ zrbVln8z2OQiA6kW2LK`$FB5_^Nel)gK14Mf4E#VjM5w$m|T>0>y z_6llCLB}=?%1Ok>i08j#wXvVhyOV zE5L`9^Rt(*bIO5z+iiuLi!-skin#B(%C33xPm|fN^*@~pK4ta<64ZT%dB$ZVms)jA z7l$Fhtk)hDVrHglw3Ldu>C26b{5c8=onW7j6C6yX^*Q2zaC5 zIs?}l`i?c|@f)89_p@j^DYhqYBMrQ4lD*Y9T8+$-(dlp^${;(AktISp2_S3sfQkz{ z-X$Ap4APHWx(aRdZ6YyRZbY;=iSzm&p0lFWq|F_N6T(lX3t2r^_z-_$wpX%KD4whs zK2&zr%=U_(USHquWv#UUuP=2%UJuLidpihh1ph(NgnG`Mj(b?2aB7A9XtfGG9pS=| zG@`kNhA<3tLm=j7f76}bz$kFJN3c?Wbh=t7U!v?jY5f~sJxeGut(hwU&8F+_hNVI; zwY*qNs49{=QitS2^DSWs^SjD$J5F+Y$crzc6#ssY`+woNAvT{)l?Z*i+g50(Y|+V3zVtq`$T8%^SD!NdQa^)=&&b4!WZ#?Fqez|e5Wos_>c1jEqxq%B`wt zC{(M|zXDfiJ6#AxZi#4laSk^rSHkUn8v&yj8>ZRqrOmt5ZoUFJlRpUt5|YDgO&{>w zTdXg3er>b`R)72+j~);eEoSRv9b;k|S*j1ux!f}}Eo`^bo-7KxI2T*U){JU;wnhAH zeTX=>lS`q!@l8)3j{FuwI_jPKknR^bs*s9K7J<%zeZ^7-b)HxL_pd0IUS@I>20R;9@QFADGyZ<%Q=EwLH_;tf042G`g<1G^KX&&JEB}qa9qBei z6ld^XZdd#aw=gxm^&U&-Ekz~fyQ<8{$Z*Xdzas;`{eEajNEHk%r^U${KwYZPqns0& z+kvh}h3IIrhjyAuwO}CVm8vnG`SE_$-p_b4K~|d?1qlg>4~0a2t3nUb6^}6N_2HV- zkrZ%{KV3>{23|jRW&tLvXB(fS=$dQ_pm0hwOn1(=>P}Xcep4zd7}3prR2@N^MM@z_ zk`fk?9jKY|hWg9{{Y^>v)2HA#ne{z4`DoD#owMP2w_a%<{8JB(m{0K1v5`)rDC1eG z`+mAYwz?~bU67NkaxpT^SJ-@3eg=)wpUD9EFU5C9X|~Dxds3|!6jhjvPV9_mw##4b zA8(Gd8;~O#wstfOyqxYgdV{C=oc{fEFGliHd_yDdl97bBd+`E#Vu{A{Q?Gf$>Mv0$&MgFU?n7K*W$v+`FCPpLYe`xk3Xi!XZ7!UF#pFa_Z3 z<*SCxbk&CbtjO=3#C>@g`yr2e*fgdVy(SBDh&28?WBi+H6>1O$I&t%Hfr8%9#*!=a zprw{}Xgepz{m9u9bHSFUB7}lK7c_u`<4N5b%rs>vuVSltkwv44XCwf%CPFG~)`A*E z|3nH$v%lLf3@R0GLPbX0{T~`>m+#lFh&TTeCdkcO=rF^W2A&g47x%pq8MMf8nRNG? zT~1d=#Z(cMG2fOdmD3W}^ZMUxF$^L$JZy2)_wVDG48+2jgCW4S#>DP$T2i{(#TgGx zNQ_1tks1a!Hw4JStk_--dV>W#u0r(m^@lo&3KDRZ&$nTH=l z1x?0Sqe>l~=K6`x=5dC?SX|tVaBhQ4WzuB}#;OB$rBMdva0@le&q?&*l1-QGpsW$` z$;NN0HB6U@=}M#vxsp@z9?GuF@<$^1v7-a)b z(FWaSSJ%BL(e@z8yvfs6Y}yORwa}m8x()WmeGd2a4xLCSJJ$}qo>2ALk=o@{SJ#$- z^jN!YKY*&ubE{_ikCq*1A4~n;SwCDU3Amh8&vX}_^A+#&eWcAGigNZpY|lv{SVM1y zV5N#qQO4ck>KZD3orqmwVnR7m3&`P#krFAvQ}5_d32buiuw6}?i}m?gQ9!XRsLO&F zU>$b3zrDbZ-;BoOr3srW5@Xeq*ZmxD)m*jfR|B9$iQgPO@qL4$;I_#(Yj$l>fM*k! zR8q3KKKrVEd(t*xLToge%IUc?oFMo7{M=Z0c>ztz3RYO`6jsCj1H*x+Q9Ea6Z^*N& z?st+d2R(}^?4eO%vKO9xLa*sVtE)}8^sv$rhxKWk@4l{vV6=Hr5YXxhxhZG47Z9Zp z@&JGMBn9JUb3hLAyhIxAYC*HvtLw3Lg-Hex+2U-xvD*GdsrxQQ+@)VCD0$qG`8lM3Pq zq|&+cIhS3Wlq+&D;FaS+si+;IUf?4DiCHl*JK8@M)$jGd(mfu{TvzYpH}YpC953Z> z3+H27+k_bhxQj0 zxujn9)$DL?xzk&410kZSu7(XA$4R@cYicTvT2wRw^e^T{Q+m_8{jc}*fG}LOR4R!W zB=qL56NC0TgTjJ!Y@SFd>X0ij6 z?1=BeK*94&p{qhKA0qJ@ZrrC3%zki57(|RV*URO72B)(lP_R)>m>-qsaB_8itphdi zVQr|}tCqBgAB!XiRDdF9Uoy@GH#ymQ!g^BufV9lUx|&?cQgwL*`0PS1FSQuAQ1@4o ztc6;;*Jl@fb4x5@V&Y!#g&Tj*&$~$RF)N;hl7YH|XdZn|ScKyU?v+)9(7iB((#1`y#<$Y%X`mJO^eyzG=3q!+AI>5uS_dt3kIR07&Fyl@x;}%-Rhtf4Nl4k3 zCJ)H?GrrJ3|7@65iv?eU(?Y;JEqXrm0Evhp^M1QH9T&G`f%3U=2A}+Ddm5G3Bh_O; z1liV)$0Myb9itnC=t?PCyWS$h{cOFv?BV)Q`12{qHHm*0g_0?$mTO;MKR@2C9L^Lw zD1*D=yWw}u(~WN7 zCO{5^tuUxQ?RhhWv{Zad^CC=iBL!bUtsFO!WVFip*wsw+H_5foNinBwchgg@6|ckh zG>M!_D?a5?a~1VWp6=-5McRg=_G`@4GJnF%A6z*8=hnjn&Utj{#4Uia_mi5I*Qe$- zz|O>PXs7uovT{s^Qr#LKQnn1jt@!K)fBli%ZmE)d(?TEuMmqNB%SXd~)o!Vg`n?Hb zcE@Gtq|q6ogr^I+{`-eF@yzOI69E#D4JH-?q3l9-ND`-@%sE+Ykg}g zzJXX78cO6!6^k-7l8F0cwcc_*utE=LZSc4~(VJUJVrI{mKw7*xlzMKk-ijoo+4xBT z*Ne-ro&~NDagA;`PM-Gj!vm`#)H^L!C%P4>C=Th2u;{;kH4Cr)6}admxzr7(P@_pK zFT+oVVfe#`$onKe>N^^q=r{KiU{TY2X=@td6;aYO{=|nyAofT2)o5(JJ6#xXpUF>{ z?tWBmEQ>Pe`pp+~?4$xEhxB&^!~IdF-^9=&)wv~(0#BSY)f*>|%h9f(K1?Ux|FiC= z-;@1U+Qj$9!e}3*%vShnm-;e{50E<_kzeJVpbG!R>l!u4M>1R+!68Z+-E0ig3JId>7e{#hA z`X48s+lA5nuR&>b`IMf6=f``)WuCqVzq>)5DzdHlik;t?f^A3$Ip)zMnp!%CZ z2ZUT!u6L{L9u9%P z9l8-T_`yBVt(O{5-qf2q`<>wxh=a&Kez6oOb46$$m{s~U$ysx|lJVH)&z}O3;s<7D z$x6tjGA#;}LTvE!l%%Jph&>*+(oHKoL*NLassL+6fgmlm- z*LEWF(x68F{Q){;-M_k~X7g;Lm#9CIXwTZ(ni%EBZWrW>#Z*8%BqXUoXB)t-_B{`g zxz5Dr4KJ7zakIJXDa@tw_HI5urfeUNb}iIaSJ!ipI@ zE6on3?&q6*r|;UlE`w6u!LqpQf2rN|4E^Bp@`P>Y@NUyKvUF<&SZe%a(W<0YYCvjP zKJlek)#y(``1dS80j!o+o1!FYGV(!SzKGel5jqmB{>D?7me?P6X(rR_IZ6-6$7c{g#yAV8>=5xSalgh|K9{&y`6naTpF$lFFD5bp@N zsrKi}v9s2a)7>uFyhjQ9%XH1>20>SDXz<5a=nN~HK#~~DzO0F5zc={>cG>!uO9zR* zp2sF3SirBYbE{aA7k1}bgGJAl_tiIc`_2~bIjqb1TY|MMN$A(tnxan(+Xfe4Y z$4iZC4u^B)Fvi0_5#&J83EBh$>Qf9|#CzV0slISLQ(T%a>#WilMN~IOLpA4Hp%Ky# z^cUQV9XqHCH6MBA7U$Hn^o=Vd`2YsWPt26a%2nG3`ZD`|1zVT03D}j@(%(Hcf1iD! zw*Y~|4`mvBMaE@1b)(Eq;T5S!WzS?c9LQ&9S&Z0nS~DYjLRvwq1L*_5W4=D*+e^OR z)@khcGv#toh60%%F2o#p$)9CoR6*5zLhx+b;;-fIv*iB~6alGKN^E%qHUV3M_U{L4 zz!vX!=+iZsX6O5h9S`S!GsRjYBqY>RZf;PbexO|=&8e%Ww`S1c>1Lk9r01*!o&rc` z+rMCQ=V-ItiEiAk`~4NI^Ucj)ejZ8z{Go&Ql)+9P#S8{GA!DUPHnH&dIL@*A{)}^; zEGE<>(5H>y02sLazKlA5TRfX(T9@+CJx@s>w1|m^GIiX&06H?C`SC1jkFoqOty=6u zgH_f#eS9apc`+*&YVS*Bu=<@3B|m9SQS3z5LH(9UG;wx+^?rE1KoSbaJ5(7_ zP8$PWM{C4`?|Od0N)GtGVHYNy{1dIA9jhP9&iZhJNj!|HG-10eIFJdtTMf*@@!Cgp z7~ii9xhg)!Ivfyu>c=O+TB(E%{XmBcBxWT*Kle-rnFD-BN5|%@X6Rdr$XADk`GKGX?n_`XdO6rr)+i96Gq^shXOb16Nv{EJddaKcj(g zCQ`E8B&~>AT&HpO<@)Z@F%u51*7!i#o=Vimv*Os4)b+A()6EU~lY-|Y3Q)k>Pc9*o zu3Bo4wP{>XB>(DkD4$EB0RklX`3jSHBh-v0wh9L~u&BGEq1ouQ{LH@>g7%P-3S!jk ziWp6^V^km6Zqt58KPF1+G9*PQz;|#f9R>OAJUx`?R@`pd@cw_A@+-mH*H1}C!)}2V21FoJ&Ly`0u~xAH!mnA?glGlBx9nBTvL6X@{aXW-P?`= zW8@2QrHk6Ka&mwEW(s(%655u5qM2W?{wSn^9Gi5K^s+8V*jBT(`@Uo z^?TrE`fY`tq2u0In3-J9{L8Q=VRaGkc@cMI)!vaFqyHpxf!f zp!#c~7ko`c&}O(;09`XsNqBp8UbRwnFJgTBef?JFV->mtSu7%~UNCNTUnCCace=(+ zV34cJYgKEsG2ncR=@mU?;F-g$X~6Xj%66@7637aNN7|Zbu(tCz2FF9x%>A@re<40E z_}WJekxNeThFKRlg!-C-rc}>4umXC-dF?OR+j*A_?E8QvG&p6f)94 zG3xTzjqXQ;aXbuAs{VaUUGS3U%*wMs+)(FR<0e0j_6zZ&1FZo)9+@Sx>>iQVly;>wHZFePH)pP%*N*{{tlo`<5kYsWzXcdIfn7(-5c*@N^x^ zCE-uy!tl>maJt60jAUjIq;UiBl`#ZZFfe7-*7p*YHP@hL|8g+l+q={Vh7!#SuTHFE zPAEH*p1$#NNq!hgy;G^$BGWpoez+fWwA*Z{L!d0o6NSHuNcMWv`}5#nL~swezPMT z3q<{46-fo%Ieib9}A{R=w8L ze4`=K#d2d3@?DT{&}za?V&plD8$soR9tbwQO3=k@39Dl_6rsy;2{;~UC=R-lTMx1& zp}xLjef7>m2Dtz5&DdBXi&kZmlWo}(MF=!&O@IjGooiAp>k%miOtFGEa&r1qA6tI> zpCTD2^GtEm%~9U`AEzZ^pp}9@2bly(j5^kasmT$C|Kxf6TbEF|KD}w&^fOh{7Uyn7 z)rK_lPhX&SI4h&CdLQvMdAG}fE|_iU%Q|^SYcY%bJ>+ zVgT3Zo*ZCd9Yj9@`9OGZ@PI5of2*|5pCSd;DlK+YupQ-y*Sgjy=Qdx)o!Zfm0mp&^ znVif-xyn&+{(~5P(d3Prv3E@K?U_hp=MG^V&#_)eW&8wwvu8t zM#=P9=I|7JxF+V2$SaZmz4p$9G*Gc=F3QDkMnjJott9>jMR}%h>O0T*#E&**R{pM4 zkF%qUi)KyE_lWW-*NAL*8#p?P0@vAH2`a=qW( z4{Cs+iS~kWi41P1Co8Sf!KlO*yVrptF>Y@t>6_VFht~usj}#>_0y;NT()EN$FZaRb zUJvLObeT`-t~3Vagn)}mec28Fs2?$JB8B<+xAiZ3~7Tl_igB(Y) z->D-$0+gQ=DQt)K0nK6?iDG(nJ$9(yJkP^JTot{zAsl6jk^dtQLgvokjQy`X7*=ob zmTWZl18dxCi<7+7QexMiB*-c-S4<-4eibxbq*!TZZ?BBnhXkGS9%KUqi2VHg*Rd2* zbJ4{7&h7Q}P8?k+@8IrA?FjaNj z&85FFy$b|Ba3=ClJ21yo;QUX>ujzgt@yMca!j6%!nH5f+rl#wgZ@T#$sRAk_!tmdZ z(@5-x<~Y}yxRMAfJabuN^9QYXB1E?3H})oF_7hho_n_`0C>3dLF5csgz-9rwX(Z7R zvC1Rc9QN_b-Hz~(7v|ZJ&Z}|C<&ww2c!-I1pshG#HXB9@2{~i6!uJM}_%mT)+1hou z8%8op74M&qYR7HhU||)G=PTDD|0@e6ZyP%1>R@_r_sx;VW7Zcy&kuefcn7=AYK4Eg zO0_b|6kN;B_;TkDD2NArDG`H#Xs^y`<9WZCi^x4j=fZ;=j}UX0J`qVl27*Z=Cr9Y@ zyOWhLha^x7hRB45Nhuda@On;VvBvKI>p;=IbVh{(x?3&C#B>A%>MAFJ9_t-OJ%tqI z6l8Qbj<0kZcDuQx-i`7rQ#wihgc6%K%mPXkUKpMN>8=38=$z;&v2t}YD;TZ_tG8r# zyR}KZI<}k(mX5hsDxHNc)9T&6Id=PX-Ca{%9h%Bv9yfo!H88)hv_!p(rcXAw9iqr1 z8q_y5M7!Jh`l2)23A{2UCMH%x1UK56ewi-Rok?Z&f^XTh&d3Tv#j{r3=nq7K^%Dyg zg{DM+f(FP8HhO%Fgj{dK%(ZO~!f+sqAy!@W_(q(%pz=0n<;g@G|MK&(S#5|FKHkv~ z5)7ZW#|lvNqUFd*R4FmlPpVV~T-a@0m8NU02Y>$}exq147s3}4op8vUeTZ9Je$rPo zYzU^8K7yd`K)~ibm-Bg@vYdoXmY`gKn8hzLW5CVxmI*Z0dR$&Sy-IK2vN2Z`v-LE7%*dMWnu;6o++UAh;f zKF0@%iGf?VPsLOzB_oT7D{>8saAv&BF z71_5o9ZyTlk6HHlw7#}BJe}1L=uhnpMzgJ|t;JG8>!yB7P00I}mL7u5VigPr%gwc& zfq{X9UvGm@kZmUY()LC*RjGZ3d;GHa9JANz%wY#QA6`7XuD);lQi3Iy0-?dnAjY$| zvT_x~%k3ZL2eI47`AT-+?uUO}F}aNmvR;)>>gQDSi;IHI7N={{<_loAZ)|n->?MT( z=FfXRirz%vrTETE068#9NSV5%F6_O0nYEcbjj6lfVD7q4$8}4w+c!%siaapkXpIDU zVRyDGD9?xNq%K`AYylIS4r*&JjxMHy|7N$@y+dOp1KM1D=K~Pr5B|oMYM*}iIQ^wN z_;P=ak*d))dM)nbLnnZNL$BWU07^8)dacelo%eoNurL2v!59~d~F7$G{LtW?s@t!@a=BhKznDw+L7IFTE1!P$SHasM9KQh0kQDU%lO zBN7|jso~d2g5uiQnpfn*L`Ne#$NcBP*of7(6lDV-<0gCtlL*USs!~6Fxw?0qy;m7N z2KyryA0g2BQ7(C|nO*T+0ry9(8l%u;Vc=yLtWCC;T=!) z8MXNT6P&|~9c1g3)Gi|0X`byjq_QOCe3ZR5E_|st5CwvnzOU)kgVHoGNZB@}>aab= zTRnm4f{rwkmeU1a3FZNjVM&qipmhthc=A4b-v@$#517y;6&@n-I-{|z)8-8fez&06-j~>#$kN-WKf)xG!#;kim?lw zm8OcX*XXLF7%q&P99}>OJXct1Kwl*9=+T{@#2zpN5qv5+(l`13~iOn>o(l~k}2f*i$`BU z)hK`UgMP8*63^1sHJHC~RY(mOsQQ+U2+yJgcrFV7Bp?kAb-iU;nQjJQjj+@H8_^>; zJ}}3uhdPM795IZG-B^wvF0`Tb4V0D5AiQGq)ERtg0xFX$a_VEFbtm5|KZl^k1|>BA z^}zGiMiIa5QVD#pMv{{Q112LgJ`n$$Pttb}*@HhPG5|bA<73RgQ}@~R;eD>jXYdau zZbm-AVG-j5o<7}=9L+`UEskH6Y1IZXgR;j0h-Mn|K?~Fm+5c@(K7*#Z0SqkcSg~5^ z9N0Bh5E>cUy|j`6@HwvAtq0@4fvOgDbgB6i@TTY4BF3ls734W(3H>bA)#`jbIo1I{ zojv9&hS^!WhdV~jPrr|q!`{zF1pZ*V*?f!B`_+yNuxeI)zu0!&<4&hDoQwConbjCs zs|{Xzxrft%q3BK8m>5uGW4ro1pzr`5iohDtS*XITPsGx@Tg!%K?U3$P{!56(09f2= zW=q+J*0R+7;S6KDNsb)0NB=+z1H%7Eo)rZDCrnUh8(klXQaw2-=9v$1%WPnxoW=!K zz`Vz&8PCV#Mvxi0bL5#%7j`4)F{69Rf_46m=Is3Z+yJD0ac_(CZn?uz#{KT*LUu|A z;9YRoGx?h{Bs3aux z#N|{1hIk_YS$W60U$1u%xfB!&M<-)PB!aHRkze?Ecmmwq+!zLlLK|8A*z9x6rAbUp`P(=t%W4>HS(N!7GF?Q}<|a^Oj0F0dBl>xzuYZ6Gd!y4r!JSJ=4^uP~}D~QqYC*M*Sj>P5-C7!d%YSZydMoO zNTw`-A<$joZL-#>*>!NX%h7v%aU>SfC3TvR5{ZlPa{?&{)>^bO4&B5?WhZi!+i2$J zpDC&gdTF;{kr$R%Fi)8J-J`|S$`cPtS06AIT)tf z@8mw#nInU>$j`};*#Tw&3 zWB;Mn4Un6hDNS{FJ!W@xbsd1pZZiTp32y%r21W8*W2JBGSNloc#5Bk5I0SS_MUcjJce!1Bf z=CHpfOP|zzv=!-e81YHM0)*8 zr|~2d?BnDG^#||FGh`@V5qR`&scR*C zQ&a?Tw1qNsc@#BNT#*PQsKVg%NsLeC4QbF+6vP?mV&sv45fAgP_3i1wB+bPP?`DDW1l2YNg zZK3PWtuCOt5a)3|^p`~tDQq=ui3J~L3X+q3lXsXrM|QIV5b-&yMD zh=e)n^0?1@9jRUa>XpP$fZNu8+gMeVJ!IQSkX{L9#7FA{Um>}ewZ5|rEcnBH)`2oT z!)9>cI94;dU<|4nJv{& z98g5_C366qKGx&A-q^>{LT%~8?P+J<)D#=;dQ2s=e=64ws0h(Ile(dVR7*)`LfHvw zp6a(-*js}cIPVl(Z?xM#RO%1*+ExZZ9uCX-ahwIu1&VjCfeUexp$(0cz}+l=jok ztQ*Ta)#eLizI&0q(I1~_-6RWo%4Kn=9_}Y!vH+oB?a<_3G#>zw5p)dPp!p^{2GGM| zvDWBL=XL0~xV^pA1SR&4{|=`4+rgA!wV3%O2U5xOgU!tg==GiHBKf0*c(7YA89Rg; zX+g(%3v5nVoLQmQz-CTzv3IYq-uop^jm^NwIHXaPy?K2BT_#&^NgoBiUB)R9XIy_N zI1Kz2;3mK#CNN(g%hZZo-?ulWmHf5rk0kDPSEX-1Jl084OLZN zz(xz_N`vur&|7ia=z$y6D{!{vLm}`h&&U`O_W)CRHG5+yG*TiEVcs_cbBoT&{nn07 z#8nqKbVhR=@|k{WHM+cgtPs~rb(6Mh0>J7K5AmDix+Yuz=0Ar)%Leos0IZiXgDf!h zo%Y5ERXv-OFiVZ2^=;@Xp4mXE<4(P+A=?2BC_^-9 zCz2&w8g84xolUV$iE#YwgV0)n>Q`0_@V${;@i2Ra!MQwat}Lfw1)c(?rh9mBXe5pX z4OR;qZ=dx{2~-o;fp}vu-%5=JnugS%CdLd2vU}DN6>2acB`)uH@laR7z+g5}K|IZ6 zO%9rbL3^rn9S`~z!H&nBuddI_9BaM9i>YrNLS0CC@X|k^h^rv{d+Z9BzVIPpGgsVV zG<$&)8Glr(vRr#S?xOgoa+_X95PWKrBPeQ1P${}t2O5k@vXx4k9XFvV_??YzAFgTH z0I{cunve8Rq(vZf2S=aI8+0*S=8VZUB}=Y6snMCK;Z{7+)}Q0#zsHzVHYzQoF5|0w zzhOU^nK8CCz;3@K8P-p+F3j~k5F;lO2@aK|LIP>*B-Ub>k%3{xda-W78W}k004V2 ze?IOK^|5-KiuJ)vSknt2$X$Pg{Avyv)nM*W8J(fY>8cl?P5<@A&K1v?uOHONB-=gM z!3f=(Ms`m)O@smITg7dw2~M~96O2MZF8?4gp2mGz`xY70s`}bp{k98$vq>-~AOcaQ z+kBA?-r}BMVgBNioyJWt*TATg$i!(@{+RQ#R9S)<8P#@e>}50!W$cg6@vutMYKL3z z61Vbjbu+4F%c0Y}$!9XtcBA`?2Wz)~DfQ)yZ|agh7B!uI5q7f-9h%KrRO9aM-wHkG zm6q%7TNwsa1%(LBHXs?y9HcsOy#t-%1uYt0xc;Kp*qrs=1t+3^m5FTzne@;n4CQ6N zCQEQsprC$zl#_d!xtm!!%S3_y3fjTC0zV)?I~Y{CZaVF@`pLnO*BtK0WaysSAT&ld zE7os+DE+SpTg>v6D;IOHPENk17mNm?1W?&j3Q|7-pzv=#U4%v^L5~|n7&yM!=e~FO ztkbX`DEUGzaitU@6}s;OV|Raa6BR|J*Ax+p6hnmQ^rng-0ODPpNVxlJ_*98iF#$;L z9cjOt%Ycd0D>l+)<;F_Gy$;H9L1#%YJO;ml*tqn_{&08}7GjFF(|IR>4%s|2} z3AB9~iUYq7lDF3!B%I>qo?Rjm~F*XztgghBM%gmHMg@n8|D%&lg6O z-y@;af$EJjR6@)RB_$=P06>HKkI%EJiD}z{R2Iu>*o=98WO#)wW_^&PljdV~V4SvB z${k~8keI8#+1wkLHyaNXNxsUFi<8TIczaQ45ok5`b3028Mc2fHc%;f|-U5&k)c3Zw z7(MLJzQ2YeG}cH!H1L#&h={jAI*y}C)TKF@$BlR7`jmEMEbsH629)aJAkM6vuga`_ zQZ|@k;KTJ0qLw+C1m30fu5Q^R z-Xa;BP+F^1GYf;aE%@{&*O^SppBEDO{2O)D!&n1H7|2 z{QlRt?WWo1z|C0ZU?{kpl>Pfq0*}Jhb`dD%P1@^ttavZ>n}GNsa6!N+oJ&Glaa2MJ z*8F6o`D& zk!1I$yP6qfcq^Q&O4na0r6NCRsL#F|k-HL`1Uw^1cE2a$^m-^POmHL~pMeNz$U`Y_ ztiAJvU=%TR5dr&4EV&F=7-kgc)ofhmg>OAR!%-EkPuPQgbQhMWNWN4!qUm|D5r|dy zn6l9L^92o=%Wh~OmQzM5SVT{C+IRe0`H?h~)EM7{%}7Z}Zq7&%P}Iz?H&d(}*v`+M zwnHnA$q(YV0+RZo*_S7DYV0>YhOZ+)l-}&!vo25Z^hLiAoG0oPOXF%U>w0^884Us5 zRv4&KbryGa^8ZGvQQ>Bw0X917`(HXu9z2%7>#M{U~crMd=Jjsq=RuA>{i5dg`5Hu>my=2yc>7!58$X&&6kB2L|f06f^(ElkFVou9P z2~a}-PJu2Ul8040wvf6pJ{n6JNO%z-gh;tLpcx&kSA;J+ssqfrf2ZmB*jKE7ug2Vn z4D?LiS9Au&k>H9puxJ5^yh;D@1Du16v4D?ix60D?ueY4_q~8h6+5wd+_@ zQ9z7;z+U-4i-1ipbsD-PYbg19q=5UcXOW(GC`_i?xeRrokN zGqZ;ZW?|&K*1v2eu)c|gvV6X4xRSu-kqmxhMG>|fpMNaQCxv?Rw^`lTZ?_ZtctBC0e+KnwG zn7O%m8iKy*zSRDR6|j_t@WrUQb=?G^OSJFy?X$DD?cY!y%-F3D++r-)e8f%XchFC& za}B3JjeMcjCnl=~E;_5aBJ7ll>Xv2btXziYWSm$x@v|D8PWoqYO0|gZ3?K?p@2y@<%f?P=Bg= zONeJ_)@%q{khC>4yxdreUNh@|xO09cPEOiqrH~aqJvO$G2uj*{ZcFLW>+_kh-<0$| z{bWeaw)+%7GzCRj9ItKC7JuoBZXka8^mPHyO;rs8Zqv7Bgrf=SOE@6H&CdbwU%Sl* z8z&Ed|LO&XeZ!ep79&2t5_+tBM}N7yGPt@bVD51jqft`9h$=1!#EcD51{Bba~o$P{>BNBm_uf9ls3!2xt2+&<-yRiW~}hBmyi+ z>4rGj1$8Xu4H(Jy4rNIOk|-zn#wRb>eBu-O12+FNFLd^Si5QM~kA$;;eySh7KDOr5 z+>E2SnIUdO#}2nw;5rIh+D9g;aq^!3FF|S8+3^@i@wQXtCT1aIe5G^Hzj;BB4ee!#22YtmDKGEGH2rtUB40x{oH-MoxE$j^@E&-W1zmt== z!&dw9uhG65_Gi4ll@^==+y|Z5x0RVu;L-@+;C2$cHAfrydgXPh!cRHbL)GkK%ZEnQ z?wg;|_M-k-52U2L-yUbT1(dh79s^rp4)ouEbFmJsi2F!*{VE|mnSPm>PMls^{A)M_ z65;r=ukCSndtR=ii@w_W4Mj0u!MENUvrB*_CLqAS#MtfgGuqb4SRzLjjn2`5BE=L>8YWWc<5e`I8AF6X9gvDpo!}vqa+qn?=mvN_5K14WT>CRg!)cu~F~x8FEcIxw{b-D0y#7E@DE z=Nn}}ckzTQfm25~E#j{~D>nl}8)m34k0l$(2ac~aexJX~Rm>UA^o4LJWzFUr8?rNi zG8iG;M$M51OF{AA!Gpnzt8D;cea5YJTY@v3Y_#-cz1;qo^#tV~KzWz$?-3|O5<79gRHSL5aaJMOQAENnvf5kLdK4jqPdVSClKcZJ_VpWa6#6CwMyc^ehZeB)=o58!)oT z+9(SqWun0A{bnR>5vXup<-?;7vOhXABBF^`>@)x~y-JD6@bc=YNymd7PXGW{0KLsm z;)}SX6}L9L_ee`m3$L#X^aFvfDTu5m{H^Z`v(9eoLGtWs+*&KIthoN}0|!)T-WSlA zvw1@y*=6tl#c=FezMC|5o-E97j_@@A`Db%OoMGoDWgOC1n9liJ&wC zkSCm;9gT?=Bea=GC3dv(m8){$=xzS%v0NnqN-{FRbP!hkG07i+_~QT70hDUgTDA5y z^S@;hHY-fWOr1}+pt0~pJ-vQX;lz>av%~4`u%4e(-NcpF)KXnR%ROEX6tlIHG@Xx+ zjyCV7>-Igfx9@Ql1_gXPfB7+ujt1KPj`cQNW9CwM^gY}7ii`b$vJbD+ljm<|Xe{56 z;Vz2F&wO~?j`qDbauFHr-}0UZ1UpATt4G-jK6JZ5OSzs|zlD0q&R2xA2Nz2mU;RKv z;y>TD;^UW}* zx?1DQsla&(7&}yz_6rpUO?SS8hI&(G^FMxQt0gqde5(cID83 zY^wS&$(3Vx*jj&HxWB3#ZvOS<>{f2-`0kY6Zi&Ig>=2%Vl&Vi;JT|i+X1P|%JX3lu z7su20o{-o1H>5h)x@UNs@9*em9>paswmS3bgu=<<;;qoUFwCDJbUf!?>VySoiY z#4zv(Q!#9PXz1aq4J*5jX;RqV(`hSq$3?O7{UMaLESa}4jqYJdasGi-!JRBmuMeny zh%E{PJ)p;bRG7m1Z8cqD`Day?y`5v--t6Ia^ec{u7rDr;qPC@_3%g6-Pe-zr$I5OJ zQ?s&STsDALwnQ-5p^}LWTyc{~)K9S+YHp_5Kii#l1yx>fZcdKB=MBAh~@51(Ov$5P57YCL!tRDwyBm@PoXwF@W3isExCz7he)oW=8x-Mv+ zH{+7Glzm*UrCDrx^HuN>=37T`bjxHxe{QYX=B+`IfZO{U;IoSaE0W@iT$1^Oj}_15 zr5=Voak#jsDq=w*7|kkS+VbA%N+w=+_-HkDZRxxCJ45{WtPFZp;+&je(RAa*H*Zu8 z^}YopCl9NIST)_AxtN>pOo99fMK|#I_~m9!9kL?H6Bt=pK|C*B7zd@MF51B)UCx-B zUe5PMbw@Ar{s}MNog!!|)Ye*h(DWGCm0J1WupYWkl@1t28j*)$JvU$dY(#swIpS0p z^SUoQIsPZX$Zu*cKD9gbTwWO&nVY?x#QE;xx4!uMd}QEH)_cSYK|8(>rIO?YlkS#$ z^AVf%_3XV243=J~r3dX0F-%Q2IUU=}ESGr*vADR1G2_3Hk-_GXO@_-VKkK|doe-cr zn|9cL{OzOP#NY>Qy%Pp@JQvlbdtx&G~wdyBg=Cy`(-d^=6 zWxZgkbjg20?fVx=u z)!8{od1C>d@d=9xt_06hE+`dy`*xN=I@VhJ#nYc)D}s*4vu14#)d@=aUoOE{&4V}T z^^H68lp`^(m@41br~5xLpD6H(k5~8KA1c&PxvI#|f@FJY6{VuPk6!cFPD=Oqii=O$ zTyi*SH~hRz;Ayfm9o>#$EwSssi0dp0CLtx!Uv2Tau$$(7{US3gwJqufxPMu$S!t^L zST||D;cWiv-u&;Ai!5oSiI?-~9)iMHgj}W*GU#4g{=@&~;h}12;ve9PBXxaJzB!EM=z6vwL7ISn-CG}$t?Qp& z>w})QH}Bil?td^_iS1ldlbxPUdw%@+6jX=IWyRe({K{h0&L8T*kQ4pN+?rwHyG+r||BMcXbgdq{3`Ij@mUYxrxkl*`e74_u%$9 z6verhV6M9@1C(!6d6Bn&5Qk_c?cK#m04t->UsLIHS@Lo&_BZy{Y&83`ZDrXn0+R)* zMz1SQPeQ}u)tAhy!ov?-_!S|4C@2OT)K8|B;Qc1vqD>aCrM~ zVEUnh_Yf7oL^Tkqvg-N{LM`0K9WQezU*Q3H}r#I~TNRHX)`3ZlOd*{`ET* zX_-Uzc6fN`Wo1`-HaISuyvV7zI`e&Gfa?HO9 z0A?ts2ZNNjR;$`Gn1O+Q&W<0MZ4OylNcm_}F%wV96MFj%vT{OUVnykp|NIeKMg}X6 z11<071}vcDvc?)JZ!W@gMC!dp;U%$y-iqH z==bEI9KY)rmKKlE7c(QuIL0>`MjfE z{&0HzPsE;u$yE7fA5a(-**Q2gsONa$$yc<w;W4%%?!p5Wsr);erI!&(`X-cfBN zWAeB}d!KoNo9!n|D=yhIFwol?{yw63V4$#dFp7(f0Gn$4{+5t+X<4eF$|-F5N5qpS zVTr1(&o|W5))!hPomVl$W#f>cQ+(mkPC68W2G7WGju!mY#r>^^pcr;~CMe0=$!X7KH?lZ0H)bO;G!+#R+?d(b^y?{9tie*dm^yZM?K zeEjA9u7f*WiVk1%{QUlYf4;U!b6T%YwQ{UNg>`cRWT-EeZ2QLgpLU+N58+ToXT_6r z40oc}AtV32own+0P=jjT_eB@a0#nSonwKkz8Mz;5!l;h+X7wj9jQG)2)lv-xla0qp zXno{Tw71r5{o%;|s>~yuZZ_K5IY@9R6~Z1{RNNG7(hS#+KLO7iAA~@6W@a|%-lLqA zqfL$YlTJhHne%b+^`J;5C!3Ft&mam4iWcw>Q8^sQg)16Bh-0n*c(p%+{rzoBf!vZe zbUx5(`8%3*vJk12wu-FA4!^oO(P7g)K^;SH-&^q(f5BC)EBftg7i{vM=s~1XO-;5- zs4QfBpG*s6;(1~`D9K6G3#Uv;WL~}M*Dgcfc6UFNzdqw=k{fJ>fdwr-Sa{?1qAkaS z>%Fw(Lr62fz{dXAaI*p^O_%R7rHn^vIDOPLq>9eTg-E>SuQ)$RY8KzWjZQCnMbJz5|G?7gG-iSU$MK^-*~3)(U0VyeRI!LwKDD>;RQ$(S&nn_E2rTRP;y zl%hy>=`87%P@CnST2imDc&*U4#s(X=?Y0#2qVs(S^&lK%9yq%aKtI%G_~&5te7@<}rNIY#Xr^1z zr}s-tc&uMRnUTT#JVcwdkWmZ11l>%XlU0zHS6jgc@<2aRED*U!ngQOp1JE~F;29H) z<{7C{v~aOqG+A#fpW}|P0SH0+M``AF#NnIc4MFd;O z4Z+bCbpHM(f+31O;Zq!z^cEVyfFXMkL%W;-&cf&jO3wKirU1_+q_XWm?2f)>xxyx z>@JEiHZ}sig%n2gCrUXuicLGQ>ZK)LIBJ11fA;F6g_4CuwbU%eykhjzJQ!h*f!<{w zisgIK_FG0l?_DkdIawefT9-N|D)Q*ic=UiLY7(EGXxiI5Q zOfEc*K6~FbMM~0DZ!M!-52YV&DBo={IyjsPYG`Pr0K>pN?$@vT<-42Vip!&Wkd2>d zHu!#DynTFX)zs9I@Gu~6eSi3O1qup8I$b=MGKNto%69BUUd9hp^F(2C zUvje0n1~ck;k%3FSinu-V^J^9UV?IP}bd7j`#a z$)<{t((2F4+oHeu{ARdQEki#gvRxmgI zdy!_#ZkZ7jC0tlp$Rd1sW4F1lSE7oQ`q57+IT?ZefV#(4r0igD@*3Gs)hAOu>G}i- zHpA~uLi$^-3*bz}b}h)fa>;=_@8AD5`wNSReif0YmdZ?r{|Hg;T*k6LWaW)kefyTy zX|dH?yUKEQ%1l@H<6)DeU-o#8yM?*GY1}{(B#89RqHst)K4vu8b~DG{R9tP zT{SWf{ZqqpJ-q|9CJH>Kz2*fkoWBmuu&8lbJpY5WF{XAAkHA5fa~~k&uoZb5t&8*& zdc^pp-?N;ZTRi>Qt570B-;GdQxbF{1osqwz?Q&;l**cw@hO1%VFB+ixpjaA%3X5s( zqy9Kf->tE{u7x-7)lOpEH1$?621~4}I)5f4)Sw7MfPQXLQe^*Xo`hqt=naod`2NXN zx~Nuo9=FH3KZgg~urmFrCvtl-a0&sw;?f*+A9Y=mK~j_~)HX*iRcv_l89vi9-;{qm z{z*UyH=x508`DdbPOPZv@taVkF9V*S-ji0XzeqCL)?eJ zV9J5yOxTnlVDU-Cun5`TUY*`zQNk7FLDH#^Z1T7b*EcYj0JP5aXE5l!wk3<;cwvXm zljlonEssPA{2J^Mv2O`Fc^CSVk!t20KdDWf?S4v*35?+_$t; z{dzzp4Zti-skRUKZI9V4)Ts9s-@-(b_#H~g0U8cyMlK&EBz&I>;mT(sf@-F; z3?%aeEJl*>{mn5htb3rpJ@`vs@lA}*K`ycgU-bJS*r#5K&}SA?RL=!S?=LSGC--Le z>kBi}QR+^&=lLwpTmB?GZ0JDmSJDDE#@S-ZDlpzGSd3OM1zw*(-+up}1iwoaN=^r3gp5^QDe}WOa4*#8WC7Z(SHQjdZdgA0ya5B|zGS2MYz5ToC3n z-9J13B*D$;8Jas2>E8KE%YxO+?O_!Czh~Hd_?C znad+ge)o>RRVL3;>t=P;Td(Qnd)@kAdSRn*ZTG(o){9<(#HpGmAiKpQDJ#b=EqFG8 z-lO5qpUkGJJ+1l|=Wj5XPF zZ-AgnjyXE|)ay`cTdr!5M|l_5&|%r>1wlDxhY2tayH`>f;$Wl6)dD9un@9uFm@fYN_v1RE>OdC#@Cly`T!a`cat}9DSI-P& zH<=T3<1{Do95xcgihupai^d(h@cKIDw*T^2zUU3g=6MT`rQ|tLsO^fO(Q^M>gQ}@z zFi2m+I16Bl8ykLBTyjNrbECq2xMF$Yw7>L@?uT!>@-FjxbaIjIEJ24lt%VZ(f?93x0A`gv-qDxW3UjpKeaix((nyBfeWfnQBs zJv#Zo-;a?PR<-#mj&s{66? zrLYb**^66#Xkn#?BPAy_$6xrJaQlaL{rVRM<3AWfz}V&V$@60K6Js(bhj+?h%MlJI zCkIWdeNr=0VUeMpzC2b-Am~egGA`0x&>z(UO{$1_{m(7z?|@>_JsEf=^+ORc}y-(QIDbC$b<+lg9IJ}ATC(`(vsp2_TTS) zuu#`I3R%I5SDtYAehW+to~d4<-?0lUuL^HLR@H`yE{$ZVa(}^aEYc22+}XhpxjzV!rY+WMe@$pNtdzZf`GC5^&;B!-1#5gO0AQqRT~J z%4B84m*D_`A&sK~ICIc4Gn)ha&u00?TP#(TCTwBl?l#uUGWcL&0YjuIAIDidi9gjO zEG2MXv!=A)h|6RsZSq{spgKl*Xo*6&9b0E!f8zDlXv@v*wH~+$2mmET?dSfsb~d-| zk2XMF9%yjw6HJEFv;a3}YS5v01qDg(UrtUE!9p3jzF|Z)pl&-$L;V6$M5kC-3vP!r z=rW0_n-T|WU@Om`ZkIT2Dbfl386GT+K*;ubIko8JsK`b zfQ}w*ahX4KfUtwkS#oNf4rxB=G>M<5zFnQNC%0LDyhJG?K7oYtH}~y>xVhsN2}&dw z$0vm^6j>aGq8KRMP21yotJO9S8ypM71|yW(lLS<`U0$=03BE`=-2iSVL4Zyc)8h3& zMCAh>9R39njN^z&Nt^rw17~;<_&5MPX`Tfv?m}xmXa-$0+=80a24_56@5n7IHqTwj z$qx_CcJcS!udB6LT0RN3aa-tuq?Uho^Tf_^_q%qO7p&K|LihMm#nw`o^#*s|>BRV- z8S_J`IDkg@t7ikq#F+VjBNAE{R342zVMa4>nW9W0$7$^Xdo4!7G&Y zCl!eagCh|Uc=sE4{O6m;bD;`~H_KfgC;o<-p=Z!Y70d2UehbZ0$(%nY5+*C-w()q>Y~+;|frrJ+Frv z8mtCm*$vDM4S$~j5j4Be=!?MnWgIsnJ^7ag4}XYBYt%kMGf;ugUL-6%$PE zmE7pzPd-g7nwwldqd9YM`VN6g0HCsF?wXAa7fiR-f;T~X2$Gpk-rO80pl$znDt>;X zJbHT#u;y3l&9)$~99^!jx4(^^@JcXuS^BrUj+2bTy_lwe9iPqX`}QJH^_J10+~M-v-Vb z48_i!_9VOY(B$y%du={F?nerfr`y>YO^qjtdBY&of#>cxf`-y<{`FxlegE>UHy+94 zUn)u?xd_Ga%q#)EFb5cI>sjG|teLr(uGi*MbaQ*l!{&x74_X>Ac$Aoy7C9io-ggZR z*);wBZTJ{AgZgb;xbW&i zlfG(6mxz{$Kex` zlkZMeT1-ELNkYfyq-%q|eW3E=SD+3loQK@J=<6Kc0M*O+oQhoMlQ>B}P-#&g?P-;B zvVZ%QnyR@k6Br_K6hLS^RqNniWCVtr(;aBRPoC2p%?WLuf_k!LY6wrHNE_P=M>y2E zzLY-|{F|nck+(y`3ZIIvi<*l63_RYnnuEa*-W^{7ozKD2(o!W-9Sct$jUDm?wfM-; z5FTI;&l(^a)vc{9XPEVFKk*H_EuE!S{sl%DH#xsF!@l;?HZ}=Q=P11tqu}Ex zITO-$6gM|mche;qEIehss>paMcTAuN?dnpmCX*gaZ9l|l;|SAGBJ5n>KhOv(cjEnM?ojk>zxdMv=dH0O;uY=!`K zfxpd~<>$|lsRzh@eoucO{qTF5`@c02m(^VTU=?VcRq60^v6gcHClR07 zv)ac*A5+!A?U+imv~li6B}I=Z;r z#hRL?`9FD{3>?cFbN+tw_ltx)!E;9H1H#gq@$qpz;LSvQ4}_EqtWWTDMZRD(QVKjX z0GyC`jEykS-sfSG9|X~uejyUi>ZIFan3Z;e7zjOh__(l?)9p+lR+wn^Zy(`j&k(@W z=+Mwhr(JK11QX$)z#qr=cfQpUAsI!)L?o>s{FLuamb5NMLMs50eO#!nlpi8_y!I#M z>guYt%5;oTirNbw?^%M6eEFwPe~CBfD8ML zAr$O*?pG6>pr&60AAH85t;y_$m}J{I?stZ8b4TF|!$cL?@@&VtBuIooH4j~>tLrz` z2~2rhe#s0xu1t6?*E%<&Ng_NtItmA7Mj{mW_@zmUUVf(dfI$>CYys>mb%8Bp3+TZU z4}eKA`lF$ti;-Rok-HmC@!O+-nOo{?Q>GcWxiYeZK}-T{a@eoDq7Xbz!{*Q3xHYwD zO>%Buc^?<3EA6Or($WS(aUztj2u4*Hz^IT6K#+Po_mG1UU@2C4%IDye{SbhP!4b4RBV z3y@ic&47^5|M2)&V6xiAV88`eKByD==P$X6jzx69!OcCsnqbxV2-$Nck!(k&3|)!= z2p_6>!B(+lyn1tQ+H%AMla!L}9Fl<&7Ag#bW(G$s{=&9MNLIDc9Y8uFd`!-GSaBar z9^r!nnsC+0e=UY14BkI*09ML0HwTcP^4D(0#>OiHDI)hNK;YJZz?VqDEJr@d2DoBA znFeBWi1JX93`te>RB(3k{F z*u_eOTpA4xP2$=>()F+52Xr*KX^7tP12M3ib2B&3k0>cQMEMW4!tLsspU90}q|>PA z;7sS+`Y*%-GU!||Fj&?vy4;=d2N+3QO6J5bBrvkY?_;NR>>nclWrXqFW)^+poW+8u zw1Z>kV4iZSN4mJJ$h|vavP&TxNMO)Obu}jhyDXysj%R#s$7?d@K*zhPboC1kS0Vz< zp%Nd+DnJ0xD)RX8V~YP`C+k~EAj3d(g%?-3wSq2`-(cWk;cAC9tdoS-Er3PAW_E0d zAnl<0_`r_p++r%}a_L;KNnkKAprBECX@f(#Ggq6YeJ3AluW0LaeV_^{#m z`W7GOrl1YSMv=r^JqUpv=vU4L?xHHbQqdm-pFudFx2c6`V%8W~M)X1rRD}QADK` zA3KLEwgqTe4OPDCU++f>h42+e-T%oZyuzZAw|$+Db#nX`lzGN?JsNNdo6@jE%GH5YY!l#mA19 zXJNij`<0yoGuWAaEJBh_()E@Ebf(7h4X*x4gLOFMKSB9{1Op)Gs}VcQlqa^QjQGpT z^RD;D8^$+vmgF$q_CR8ce~Ne9C6YflUC(q+FAn{n8zR`R%*?3OrKQq+;0q(=TTx!l zyZr`^3P_2$;v_tliFUw1T1z2IRw(uNZw6#fkU9eR3=O}2%m{d$qr6y}Tgso}v^!4; zvp#P{i%b63-z`~-ckAvd0XUQTVCn@x$g%m^X;Y4j*Ydb>>CM_ zPX&NngBS;AHd<=piXvd3&Cg8VL_HmaTwpN7q%4rf>O(y%wICU(;Q)MVd*b8B-)0<6 zqv&*(fBr{D*0x=bd8HHmz-qu?78bkxe}EX64|3W|tg8LapZx?+$>=}JfN0H^0r5uz z+*CLC=)c*ns7_!_O_fS4*c~~8NXQ4<>!VD;=!A&*glsLA)VMp9cNqg;T%2`PRm|D& zi>Jp6NZeDCR1FKB$e0=$ukTkPjv`qjK-kGIEp5#q7od6>d&Q_a<;WcS!pL zPIg{mKc!YFYPDH{U)0qt-+V){PT+jNqVStah#n30cX~$iH%Tu7X719`S`>6HJyBf% z@QNYWgLYk;BU$cq$B-jUntBN0^*30~)@H)ry|W+^{A%qfN)_q{r@1L}0J30G-|B}H z{2Aup^h;j5M`l_RN9S`=A%BCt{Vg5lanH<%0YF}x;ulcODe@biFpkC9UGIGZi4PBm%BnJi$+`g{7iWfdtDwRE9iiOg=JuM zyQrxV8&<=|XN|~KcjqF4F?wa3FGE14?sMFw!VAD7$EP{I_5miyU^xF4z_6PYAwfax z?z8-E=Oc1a+D2d+ugY$SHQ@YJ(ntu{U_hMUbH8+lQV%k@i_)Z#1b5kiBxw(3Ov}DF zl#QHbstA;QS@Y79q{)k3@fh2iLn zdXGCYb$))1SC`=`vW5)7b+t?3F){XrSpe9#a@?I-W!G)?jENEkb-}9^V(<-1n3ewofpq!?N`e%O$R$qS6J%fc0cxuJD?R%MP|MFqU^=up+4` zDZdL}`##Vv%w{xdI^JcZTXD$r2K@2wb^P z!xv~fUKDqSd(T!Qx!T!j-k$4h=63;GxgwBWtTx8-CYUk_;c&&bHaHLQ#z^@2`Iks} zEO&IE8rv@tz#9S&xGil>$fk&^e#HIFq8&JReIoDRU-2pLY&Y!YhEEn`XNf9HYVgAV zdD_@aKP~bQ!Tc_>Briezu4Oeh@#nz!c{ZHnxK$ za4i#r(LHC-2mV%-ENb8TPwbUqRCb}BvInRa_g_@229u*4*{z0il`Dg)8;} zE`fZ(+QNeMHjvw~0IrDpBN*sIitUd+?>N}QEgdU!`|^@k5|J*8Ei}Lg5d1!=C~xn_ zCIvuf>aQiw|7DVa87+(o^pVS*LC4U|#bGqKq#%pYT$hFhxmkz`4rk-w=>2+ekP2?6 zffSmA-7c&}z<7_h#ENoHv*Bl4UrhQR4UyEW-prhWAWJWF(2Mb@SDIxN+YCoU*i803 zavDgA(7r~%z!w)6J63?S6W@x?K$E7Az)BQ#fxU$axGIY0weepnVi=ehmUQ=GBq#8^ z1-&15Id2;;L)?^s&*9$#n{{Z0kC}@n#s`Osi)$$3eS|EqTeSFcK}GY41%!w+8W1j{ z@d*ej^nmR59)uZxNxJVbc_1i~2UPn#L=?0i+)pv4fs+)t%_CIFx>*#_MIo|SK|nyC z3_*;&LNcUI5=Bf;EU zu{4F@e>pt1cgePhha1gNko)oDhq)QZjy}VfpyGthAii!cV39Wl1_amFcKJv`uWYZO-!7}CL~O=yn0o@3iy+H%HC(CUF{7lK83qGHbN1u) zw=!BKPxg8SQw$=4umSTvhUFZnCqj~eZ3rLYiU%hGeqKDh9&eD+B*hU`@7Ke$_1-8Z zq5p|eQB1{LT<@B56mnVQzLau8oQs<)KLF}PEwFrFrR;VvBysU)j9?c1vEt+;P;MYe z1UGw}7z@@qfTkWWq|899aKAp=6$0j61M-s#Af&K-Us+kn%w++GzP6{k8y5_=jdnn) z5n-%98~gPpw%(fhMfyw(dq>@sQCkJB0B41z3A-6LQY-ssEqnw#zH9WW(7!1?-B)^_I?Ei zKOU4|pvgu5&p~|yP#cKve1Cpk57c8!AYj0(2c}8w`uh)lEzo6yJ9vD-B|u-iFDWQC zEG!GbbK?cr+%+TR6A37j2qV^0IbYRg0T9?I5c_KE0YEG8l+q3ktdpqU`bY!2*mnk0 zKtO@Z!~}qIOcIB!?Am&LMgtr_4#5!rmbs1qymM$H>_k0FHi_c$`r6gh#Dx7T_z2EK zBx;&mI3R`)hfoOFRumWWvf@6Z1KZ*G*>2m+P&%I4=YO~jDS){4-#PpHHVMR#9eA6~ z7HQVl`XSz;i#~w#Kf!<_3zLV32kGhQX#^6LFb94>e*Qwu7fd)!7>K4v5JG2U(~3$q zT~EC9U56F)f)9X7=yAkzx!_MW&R}~Xfrt;s0IKgO??UQ7DD}MerA6JIJ>Hlhak{%Mcmc8U9QHQFM}GQAU{7jyIK(J zJUYZ9ePFX*XpXV5u`xqjKT`(_O-KrImzBK$1`+jsAu0~ejP$*Kyo(Y@$)3x$15yRd zGdNhb6G(lWlKJd9eak4|a4t*~2!sOsBw*+dnyu~si7gEdm|zcBpQS*GTJawQA7OX& z+AJ?rx$*$04Izrzaehus-Qoa6m|IWQ*sZg{x_i4lr{^Jq zu|VRlw?~=aAp8Vj5%HGIJno2DmzQ8LP-t#mL*Rk-wzplSJ67@V!jM4<#LMxlt>tIY zs$Hqk@A!#ALPAmlv%Wt1G8rFF1C$L)F>;lM1`tYB zyI+=qjr0`IjdT&1?|(*M7vQ3t!miHFLf`|SyQ}IX4u``)f#sJQ2s~JRpaOPXmGKY_ z5=^@Za`RUL*x2rVQ&?13>ef*&{r{O%p@-|#!(bcR+gU&@@)=>jYJx~-a7F~=r07iq z@G$U6`xoE>WH}6PF?Lwu?K&k8>b>14&;Y@e<^MZ3`u~VhwyymAB)Jez1m#iz$E9XZ zPfrJ#_}A}IJqZsF5nE`-&Q|O{1qYLYvJ3y?0!@FJGD83BLOjHw&`Yed_LD4G>Dtv!M zEeaSFU>g9ck#&*~sY#Iz3JhGz7-NA#({QR;p0K*1EI)IXgr>Cb+K;x~mPgL!M`caTpIN{m{yX)|4ZvwXVDs+C zrIV9C8Ywzzn%>!4!1!&k+rw@9?Hm3?_Rj~d3;zP#r5JmAYxeYIQua&$plQR9WZ-C>U}$|ZaE_r?2%2x(8Gx$$)_PA%_G8iG%+=!hZe@<{-}vqS7yxhgtgp@nc41b9m%At_1zCdPUMlI=mzNI( z1qJ1JTtV+9*n}?a3!cbumLB?z%s{*H99!>&dws&XU|pkS2XJG|5wii zoceo`^7MHRY~3sHVE6l>K3{<$1RBp2yz0;`rn?Kcnfc8X;KG~b3?F_y^SL zpy0zd;9&K9&`uAA58pr4gPL(ItgL&B|F2FzzajCNk4(%~uAP=YEgwJbx9_X_@?zp+ zpuO+3w^soR{*^2zPoDG+jb#BAaA6S2dCu%y>DH>DF*DwZUQEd)BE=AoBieM*ZY=Y-oe4f$M4$bqX zv>hIS;Kqda%$YNJt*XDR;bf=*Ze*AUJc-E)ILxIQRvHU5Ycr@|znTOb3-q67a}hYw zQMznZwxZIaTlJ0J8-U{hh6@8Y+W3JFVdQ&MBb@0C%X?D*ylh delta 63943 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 diff --git a/docs/sources/terms/images/docker-filesystems.svg b/docs/sources/terms/images/docker-filesystems.svg index 06d5ae8b0c..d41aff2522 100644 --- a/docs/sources/terms/images/docker-filesystems.svg +++ b/docs/sources/terms/images/docker-filesystems.svg @@ -9,15 +9,15 @@ xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - inkscape:version="0.48.2 r9819" - version="1.1" - id="svg2" - height="600" - width="800" - sodipodi:docname="docker-filesystems.svg" - inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-debianrw.png" + inkscape:export-ydpi="90" inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> + inkscape:export-filename="/Users/arothfusz/src/metalivedev/docker/docs/sources/terms/images/docker-filesystems-multiroot.png" + sodipodi:docname="docker-filesystems.svg" + width="800" + height="600" + id="svg2" + version="1.1" + inkscape:version="0.48.2 r9819"> - - - - - - image/svg+xml - + @@ -321,146 +295,69 @@ inkscape:connector-curvature="0" /> + id="text3655" + style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial" + transform="matrix(0.67123869,0,0,0.67123869,53.68199,126.56876)"> - - - - - - - - - - - - - - - - - - - @@ -962,37 +859,6 @@ id="path6350" /> - From e40fd1e3e10198b9e2291b3383ed041743a73878 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 21:39:03 +0000 Subject: [PATCH 35/48] fix panic --- container.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/container.go b/container.go index 74f8ee7d8e..51313ebe0f 100644 --- a/container.go +++ b/container.go @@ -933,7 +933,7 @@ func (container *Container) allocateNetwork() error { } func (container *Container) releaseNetwork() { - if container.Config.NetworkDisabled { + if container.Config.NetworkDisabled || container.network == nil { return } container.network.Release() From cc851dbb3f4725562729f12663e246690a61c620 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Wed, 16 Oct 2013 13:40:52 -0700 Subject: [PATCH 36/48] Catch errClosing error when TCP and UDP proxies are terminated. --- network_proxy.go | 12 ++++++++++-- utils/utils.go | 10 ++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/network_proxy.go b/network_proxy.go index 1bb849538b..86545801b5 100644 --- a/network_proxy.go +++ b/network_proxy.go @@ -103,7 +103,11 @@ func (proxy *TCPProxy) Run() { for { client, err := proxy.listener.Accept() if err != nil { - utils.Errorf("Stopping proxy on tcp/%v for tcp/%v (%v)", proxy.frontendAddr, proxy.backendAddr, err.Error()) + if utils.IsClosedError(err) { + utils.Debugf("Stopping proxy on tcp/%v for tcp/%v (socket was closed)", proxy.frontendAddr, proxy.backendAddr) + } else { + utils.Errorf("Stopping proxy on tcp/%v for tcp/%v (%v)", proxy.frontendAddr, proxy.backendAddr, err.Error()) + } return } go proxy.clientLoop(client.(*net.TCPConn), quit) @@ -205,7 +209,11 @@ func (proxy *UDPProxy) Run() { // NOTE: Apparently ReadFrom doesn't return // ECONNREFUSED like Read do (see comment in // UDPProxy.replyLoop) - utils.Errorf("Stopping proxy on udp/%v for udp/%v (%v)", proxy.frontendAddr, proxy.backendAddr, err.Error()) + if utils.IsClosedError(err) { + utils.Debugf("Stopping proxy on udp/%v for udp/%v (socket was closed)", proxy.frontendAddr, proxy.backendAddr) + } else { + utils.Errorf("Stopping proxy on udp/%v for udp/%v (%v)", proxy.frontendAddr, proxy.backendAddr, err.Error()) + } break } diff --git a/utils/utils.go b/utils/utils.go index c78e61d801..b0327dd40c 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -1028,3 +1028,13 @@ type StatusError struct { func (e *StatusError) Error() string { return fmt.Sprintf("Status: %d", e.Status) } + +func IsClosedError(err error) bool { + /* This comparison is ugly, but unfortunately, net.go doesn't export errClosing. + * See: + * http://golang.org/src/pkg/net/net.go + * https://code.google.com/p/go/issues/detail?id=4337 + * https://groups.google.com/forum/#!msg/golang-nuts/0_aaCvBmOcM/SptmDyX1XJMJ + */ + return strings.HasSuffix(err.Error(), "use of closed network connection") +} From 655b16c712f1112949ab0f694a12c4b3c7924498 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 21:46:16 +0000 Subject: [PATCH 37/48] skip auto-remove test for now --- commands_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/commands_test.go b/commands_test.go index 2da1f8e0ca..aceb7a6577 100644 --- a/commands_test.go +++ b/commands_test.go @@ -545,6 +545,7 @@ func TestAttachDisconnect(t *testing.T) { // Expected behaviour: container gets deleted automatically after exit func TestRunAutoRemove(t *testing.T) { + t.Skip("Fixme. Skipping test for now, race condition") stdout, stdoutPipe := io.Pipe() cli := NewDockerCli(nil, stdoutPipe, ioutil.Discard, testDaemonProto, testDaemonAddr) defer cleanup(globalRuntime) From 49c62879b8e3df0f0126b8ad844509bb79e016e5 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Wed, 16 Oct 2013 23:05:50 +0000 Subject: [PATCH 38/48] discard errno = 0 errors --- term/term.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/term/term.go b/term/term.go index 5929c2caa1..8c53a20ca6 100644 --- a/term/term.go +++ b/term/term.go @@ -21,11 +21,19 @@ type Winsize struct { func GetWinsize(fd uintptr) (*Winsize, error) { ws := &Winsize{} _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(syscall.TIOCGWINSZ), uintptr(unsafe.Pointer(ws))) + // Skipp errno = 0 + if err == 0 { + return ws, nil + } return ws, err } func SetWinsize(fd uintptr, ws *Winsize) error { _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(syscall.TIOCSWINSZ), uintptr(unsafe.Pointer(ws))) + // Skipp errno = 0 + if err == 0 { + return nil + } return err } From 7b1c6ccabd1c1276c80abc1e818b45804a5d05ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Thu, 10 Oct 2013 18:22:23 -0700 Subject: [PATCH 39/48] Try a different presentation of infrastructure documentation. --- hack/infrastructure/README.md | 80 ++++++++++++++++++++++++- hack/infrastructure/overview.md | 103 -------------------------------- 2 files changed, 78 insertions(+), 105 deletions(-) delete mode 100644 hack/infrastructure/overview.md diff --git a/hack/infrastructure/README.md b/hack/infrastructure/README.md index 126792a6b0..a3641f6dc8 100644 --- a/hack/infrastructure/README.md +++ b/hack/infrastructure/README.md @@ -1,5 +1,81 @@ # Docker project infrastructure -This directory holds all information about the technical infrastructure of the docker project; servers, dns, email, and all the corresponding tools and configuration. +This is an overview of the Docker infrastructure. -Obviously credentials should not be stored in this repo, but how to obtain and use them should be documented here. +**Note: obviously, credentials should not be stored in this repository.** +However, when there are credentials, we should list how to obtain them +(e.g. who has them). + + +## Providers + +This should be the list of all the entities providing some kind of +infrastructure service to the Docker project (either for free, +or paid by dotCloud). + + +Provider | Service +--------------|------------------------------------------------- +AWS | packages (S3 bucket), dotCloud PAAS, dev-env, ci +CloudFlare | cdn +Digital Ocean | ci +dotCloud PAAS | website, index, registry, ssl, blog +DynECT | dns (docker.io) +GitHub | repository +Linode | dev-env +Mailgun | outgoing e-mail +ReadTheDocs | docs + +*Ordered-by: lexicographic* + + +## URLs + +This should be the list of all the infrastructure-related URLs +and which service is handling them. + +URL | Service +--------------------------------------------|--------------------------------- + http://blog.docker.io/ | blog +*http://cdn-registry-1.docker.io/ | registry (pull) + http://debug.docker.io/ | debug tool + http://docs.docker.io/ | docsproxy (proxy to readthedocs) + http://docker-ci.dotcloud.com/ | ci + http://docker.io/ | redirect to www.docker.io (dynect) + http://docker.readthedocs.org/ | docs +*http://get.docker.io/ | packages + https://github.com/dotcloud/docker | repository +*https://index.docker.io/ | index + http://registry-1.docker.io/ | registry (push) + http://staging-docker-ci.dotcloud.com/ | ci +*http://test.docker.io/ | packages +*http://www.docker.io/ | website + +*Ordered-by: lexicographic* + +**Note:** an asterisk in front of the URL means that it is cached by CloudFlare. + + +## Services + +This should be the list of all services referenced above. + +Service | Maintainer(s) | How to update | Source +--------------------|--------------------|------------------|------- +blog | @jbarbier | dotcloud push | https://github.com/dotcloud/blog.docker.io +cdn | @jpetazzo @samalba | cloudflare panel | N/A +ci | @mzdaniel | See [docker-ci] | See [docker-ci] +docs | @metalivedev | github webhook | docker repo +docsproxy | @dhrp | dotcloud push | https://github.com/dotcloud/docker-docs-dotcloud-proxy +index | @kencochrane | dotcloud push | private +packages | @jpetazzo | hack/release | docker repo +registry | @samalba | dotcloud push | https://github.com/dotcloud/docker-registry +repository (github) | N/A | N/A | N/A +ssl (dotcloud) | @jpetazzo | dotcloud ops | N/A +ssl (cloudflare) | @jpetazzo | cloudflare panel | N/A +website | @dhrp | dotcloud push | https://github.com/dotcloud/www.docker.io + +*Ordered-by: lexicographic* + + +[docker-ci]: docker-ci.rst diff --git a/hack/infrastructure/overview.md b/hack/infrastructure/overview.md deleted file mode 100644 index 592c9b0b22..0000000000 --- a/hack/infrastructure/overview.md +++ /dev/null @@ -1,103 +0,0 @@ -# Docker Server Overview -This is an overview of the Docker infrastructure - -## Docker Git Repo -The Docker source code lives on github.com under the dotCloud account. -https://github.com/dotcloud/docker - -## DNS -We are using dyn.com for our DNS server for the docker.io domain. -It is using the dotCloud account. - -### DNS Redirect -We have a DNS redirect in dyn.com that will automatically redirect -docker.io to www.docker.io - -## email -Email is sent via dotCloud account on MailGun.com - -## CDN -We are using a CDN in front of some of the docker.io domains to help improve -proformance. The CDN is Cloudflare, using a Pro account. - -*This is currently disabled due to an issue with slow performance during pull -in some regions of the world.* - -### CDN Domains -- www.docker.io -- test.docker.io -- registry-1.docker.io -- debug.docker.io -- cdn-registry-1.docker.io - -## edge-docker.dotcloud.com -All of the Docker applications that live on dotCloud go through their own -load balancer, and this is where SSL is terminated as well. - -## www.docker.io -This is hosted under the docker account on dotCloud's PaaS. - -### Source Code -The source code for the website lives here: -https://github.com/dotcloud/www.docker.io - -## Docker Registry -The registry is where the image data is store. - -### URL: -- registry-1.docker.io -- cdn-registry-1.docker.io - -There are two urls, one is behind a CDN the other isn't this is because when -you pull, you pull from the CDN url, to help with pull speeds. We don't push -through the CDN as well, because it doesn't help us, so we bypass it. - -### Data Store: -The data store for the registry is using Amazon S3 in a bucket under the docker -aws account. - -### Source Code -The source code for the registry lives here: https://github.com/dotcloud/docker-registry - -### Hosted: -Hosted on the Docker account on dotCloud's PaaS - -## index.docker.io -This is the docker index, it stores all of the meta information about the -docker images, but all data is stored in the registry. - -### Source Code: -Not available - -### Hosted: -Hosted on the Docker account on dotCloud's PaaS - -## blog.docker.io -This is a wordpress based Docker blog. - -### URL: -http://blog.docker.io - -### Source Code: -https://github.com/dotcloud/blog.docker.io - -## docs.docker.io -This is where all of the documentation for docker lives. - -### Hosted: -This website is hosted on ReadTheDocs.org. - -### Updates -These docs get automatically updated when the Docker repo on github has -new commits. It does this via a webhook. - -### Proxy: -This is a simple dotcloud app, with its main and only purpose to forward -http (and https) requests to docker.readthedocs.org. - -https://github.com/dotcloud/docker-docs-dotcloud-proxy - -## get.docker.io -This is the docker repository where we store images - -TODO: need more here. jerome? From e8da76605f11c10d964c251a944ca5cbcdf1518a Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Wed, 16 Oct 2013 17:50:08 -0700 Subject: [PATCH 40/48] Bump version to 0.6.4 --- CHANGELOG.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++ VERSION | 2 +- 2 files changed, 79 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f7e5d9232e..ddd8580a10 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,83 @@ # Changelog +## 0.6.4 (2013-10-15) +- Runtime: Add cleanup of container when Start() fails +- Testing: Catch errClosing error when TCP and UDP proxies are terminated +- Testing: Add aggregated docker-ci email report +- Testing: Remove a few errors in tests +* Contrib: Reorganize contributed completion scripts to add zsh completion +* Contrib: Add vim syntax highlighting for Dockerfiles from @honza +* Runtime: Add better comments to utils/stdcopy.go +- Testing: add cleanup to remove leftover containers +* Documentation: Document how to edit and release docs +* Documentation: Add initial draft of the Docker infrastructure doc +* Contrib: Add mkimage-arch.sh +- Builder: Abort build if mergeConfig returns an error and fix duplicate error message +- Runtime: Remove error messages which are not actually errors +* Testing: Only run certain tests with TESTFLAGS='-run TestName' make.sh +* Testing: Prevent docker-ci to test closing PRs +- Documentation: Minor updates to postgresql_service.rst +* Testing: Add nightly release to docker-ci +* Hack: Improve network performance for VirtualBox +* Hack: Add vagrant user to the docker group +* Runtime: Add utils.Errorf for error logging +- Packaging: Remove deprecated packaging directory +* Hack: Revamp install.sh to be usable by more people, and to use official install methods whenever possible (apt repo, portage tree, etc.) +- Hack: Fix contrib/mkimage-debian.sh apt caching prevention +* Documentation: Clarify LGTM process to contributors +- Documentation: Small fixes to parameter names in docs for ADD command +* Runtime: Record termination time in state. +- Registry: Use correct auth config when logging in. +- Documentation: Corrected error in the package name +* Documentation: Document what `vagrant up` is actually doing +- Runtime: Fix `docker rm` with volumes +- Runtime: Use empty string so TempDir uses the OS's temp dir automatically +- Runtime: Make sure to close the network allocators +* Testing: Replace panic by log.Fatal in tests ++ Documentation: improve doc search results +- Runtime: Fix some error cases where a HTTP body might not be closed +* Hack: Add proper bash completion for "docker push" +* Documentation: Add devenvironment link to CONTRIBUTING.md +* Documentation: Cleanup whitespace in API 1.5 docs +* Documentation: use angle brackets in MAINTAINER example email +- Testing: Increase TestRunDetach timeout +* Documentation: Fix help text for -v option ++ Hack: Added Dockerfile.tmLanguage to contrib ++ Runtime: Autorestart containers by default +* Testing: Adding more tests around auth.ResolveAuthConfig +* Hack: Configured FPM to make /etc/init/docker.conf a config file +* Hack: Add xz utils as a runtime dep +* Documentation: Add `apt-get install curl` to Ubuntu docs +* Documentation: Remove Gentoo install notes about #1422 workaround +* Documentation: Fix Ping endpoint documentation +* Runtime: Bump vendor kr/pty to commit 3b1f6487b (syscall.O_NOCTTY) +* Runtime: lxc: Allow set_file_cap capability in container +* Documentation: Update archlinux.rst +- Documentation: Fix ironic typo in changelog +* Documentation: Add explanation for export restrictions +* Hack: Add cleanup/refactor portion of #2010 for hack and Dockerfile updates ++ Documentation: Changes to a new style for the docs. Includes version switcher. +* Documentation: Formatting, add information about multiline json ++ Hack: Add contrib/mkimage-centos.sh back (from #1621), and associated documentation link +- Runtime: Fix panic with wrong dockercfg file +- Runtime: Fix the attach behavior with -i +* Documentation: Add .dockercfg doc +- Runtime: Move run -rm to the cli only +* Hack: Enable SSH Agent forwarding in Vagrant VM ++ Runtime: Add -rm to docker run for removing a container on exit +* Documentation: Improve registry and index REST API documentation +* Runtime: Split stdout stderr +- Documentation: Replace deprecated upgrading reference to docker-latest.tgz, which hasn't been updated since 0.5.3 +* Documentation: Update Gentoo installation documentation now that we're in the portage tree proper +- Registry: Fix the error message so it is the same as the regex +* Runtime: Always create a new session for the container +* Hack: Add several of the small make.sh fixes from #1920, and make the output more consistent and contributor-friendly +* Documentation: Various command fixes in postgres example +* Documentation: Cleanup and reorganize docs and tooling for contributors and maintainers +- Documentation: Minor spelling correction of protocoll -> protocol +* Hack: Several small tweaks/fixes for contrib/mkimage-debian.sh ++ Hack: Add @tianon to hack/MAINTAINERS + ## 0.6.3 (2013-09-23) * Packaging: Update tar vendor dependency - Client: Fix detach issue diff --git a/VERSION b/VERSION index fe50cf96de..d2b13eb644 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.6.3-dev +0.6.4 From 47cc6c808161057f3a04f090dc01f32da2132b47 Mon Sep 17 00:00:00 2001 From: Victor Vieux Date: Thu, 17 Oct 2013 11:26:17 -0700 Subject: [PATCH 41/48] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddd8580a10..b81e0d7706 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## 0.6.4 (2013-10-15) +## 0.6.4 (2013-10-16) - Runtime: Add cleanup of container when Start() fails - Testing: Catch errClosing error when TCP and UDP proxies are terminated - Testing: Add aggregated docker-ci email report From d401e9d3ace06d3291ddd96a8ab8aa690d5935dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Petazzoni?= Date: Thu, 17 Oct 2013 14:11:10 -0700 Subject: [PATCH 42/48] Add Stackbrew. --- hack/infrastructure/README.md | 36 ++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/hack/infrastructure/README.md b/hack/infrastructure/README.md index a3641f6dc8..a74f1f4095 100644 --- a/hack/infrastructure/README.md +++ b/hack/infrastructure/README.md @@ -22,7 +22,7 @@ Digital Ocean | ci dotCloud PAAS | website, index, registry, ssl, blog DynECT | dns (docker.io) GitHub | repository -Linode | dev-env +Linode | stackbrew Mailgun | outgoing e-mail ReadTheDocs | docs @@ -34,22 +34,23 @@ ReadTheDocs | docs This should be the list of all the infrastructure-related URLs and which service is handling them. -URL | Service ---------------------------------------------|--------------------------------- - http://blog.docker.io/ | blog -*http://cdn-registry-1.docker.io/ | registry (pull) - http://debug.docker.io/ | debug tool - http://docs.docker.io/ | docsproxy (proxy to readthedocs) - http://docker-ci.dotcloud.com/ | ci - http://docker.io/ | redirect to www.docker.io (dynect) - http://docker.readthedocs.org/ | docs -*http://get.docker.io/ | packages - https://github.com/dotcloud/docker | repository -*https://index.docker.io/ | index - http://registry-1.docker.io/ | registry (push) - http://staging-docker-ci.dotcloud.com/ | ci -*http://test.docker.io/ | packages -*http://www.docker.io/ | website +URL | Service +---------------------------------------------|--------------------------------- + http://blog.docker.io/ | blog +*http://cdn-registry-1.docker.io/ | registry (pull) + http://debug.docker.io/ | debug tool + http://docs.docker.io/ | docsproxy (proxy to readthedocs) + http://docker-ci.dotcloud.com/ | ci + http://docker.io/ | redirect to www.docker.io (dynect) + http://docker.readthedocs.org/ | docs +*http://get.docker.io/ | packages + https://github.com/dotcloud/docker | repository +*https://index.docker.io/ | index + http://registry-1.docker.io/ | registry (push) + http://staging-docker-ci.dotcloud.com/ | ci +*http://test.docker.io/ | packages +*http://www.docker.io/ | website + http://? (internal URL, not for public use) | stackbrew *Ordered-by: lexicographic* @@ -73,6 +74,7 @@ registry | @samalba | dotcloud push | https://github.com repository (github) | N/A | N/A | N/A ssl (dotcloud) | @jpetazzo | dotcloud ops | N/A ssl (cloudflare) | @jpetazzo | cloudflare panel | N/A +stackbrew | @shin- | manual | https://github.com/dotcloud/stackbrew/stackbrew website | @dhrp | dotcloud push | https://github.com/dotcloud/www.docker.io *Ordered-by: lexicographic* From 689bcd1dc3afdcae5bd45e32541b464fcf3ecbd0 Mon Sep 17 00:00:00 2001 From: Andy Rothfusz Date: Thu, 17 Oct 2013 17:57:01 -0700 Subject: [PATCH 43/48] Clean up build warnings. Remove redundant files. --- docs/sources/api/index.rst | 2 +- docs/sources/commandline/cli.rst | 702 ++++++++++++++++-- docs/sources/commandline/command/attach.rst | 59 -- docs/sources/commandline/command/build.rst | 65 -- docs/sources/commandline/command/commit.rst | 52 -- docs/sources/commandline/command/cp.rst | 14 - docs/sources/commandline/command/diff.rst | 13 - docs/sources/commandline/command/events.rst | 34 - docs/sources/commandline/command/export.rst | 13 - docs/sources/commandline/command/history.rst | 13 - docs/sources/commandline/command/images.rst | 26 - docs/sources/commandline/command/import.rst | 44 -- docs/sources/commandline/command/info.rst | 13 - docs/sources/commandline/command/insert.rst | 23 - docs/sources/commandline/command/inspect.rst | 13 - docs/sources/commandline/command/kill.rst | 13 - docs/sources/commandline/command/login.rst | 24 - docs/sources/commandline/command/logs.rst | 13 - docs/sources/commandline/command/port.rst | 13 - docs/sources/commandline/command/ps.rst | 17 - docs/sources/commandline/command/pull.rst | 13 - docs/sources/commandline/command/push.rst | 13 - docs/sources/commandline/command/restart.rst | 13 - docs/sources/commandline/command/rm.rst | 13 - docs/sources/commandline/command/rmi.rst | 13 - docs/sources/commandline/command/run.rst | 85 --- docs/sources/commandline/command/search.rst | 14 - docs/sources/commandline/command/start.rst | 13 - docs/sources/commandline/command/stop.rst | 15 - docs/sources/commandline/command/tag.rst | 15 - docs/sources/commandline/command/top.rst | 13 - docs/sources/commandline/command/version.rst | 7 - docs/sources/commandline/command/wait.rst | 13 - .../docker_images.gif | Bin docs/sources/commandline/index.rst | 35 +- docs/sources/examples/hello_world.rst | 2 +- docs/sources/index.rst | 2 - 37 files changed, 651 insertions(+), 794 deletions(-) delete mode 100644 docs/sources/commandline/command/attach.rst delete mode 100644 docs/sources/commandline/command/build.rst delete mode 100644 docs/sources/commandline/command/commit.rst delete mode 100644 docs/sources/commandline/command/cp.rst delete mode 100644 docs/sources/commandline/command/diff.rst delete mode 100644 docs/sources/commandline/command/events.rst delete mode 100644 docs/sources/commandline/command/export.rst delete mode 100644 docs/sources/commandline/command/history.rst delete mode 100644 docs/sources/commandline/command/images.rst delete mode 100644 docs/sources/commandline/command/import.rst delete mode 100644 docs/sources/commandline/command/info.rst delete mode 100644 docs/sources/commandline/command/insert.rst delete mode 100644 docs/sources/commandline/command/inspect.rst delete mode 100644 docs/sources/commandline/command/kill.rst delete mode 100644 docs/sources/commandline/command/login.rst delete mode 100644 docs/sources/commandline/command/logs.rst delete mode 100644 docs/sources/commandline/command/port.rst delete mode 100644 docs/sources/commandline/command/ps.rst delete mode 100644 docs/sources/commandline/command/pull.rst delete mode 100644 docs/sources/commandline/command/push.rst delete mode 100644 docs/sources/commandline/command/restart.rst delete mode 100644 docs/sources/commandline/command/rm.rst delete mode 100644 docs/sources/commandline/command/rmi.rst delete mode 100644 docs/sources/commandline/command/run.rst delete mode 100644 docs/sources/commandline/command/search.rst delete mode 100644 docs/sources/commandline/command/start.rst delete mode 100644 docs/sources/commandline/command/stop.rst delete mode 100644 docs/sources/commandline/command/tag.rst delete mode 100644 docs/sources/commandline/command/top.rst delete mode 100644 docs/sources/commandline/command/version.rst delete mode 100644 docs/sources/commandline/command/wait.rst rename docs/sources/{static_files => commandline}/docker_images.gif (100%) diff --git a/docs/sources/api/index.rst b/docs/sources/api/index.rst index d7345e8746..017369143c 100644 --- a/docs/sources/api/index.rst +++ b/docs/sources/api/index.rst @@ -14,5 +14,5 @@ Your programs and scripts can access Docker's functionality via these interfaces registry_api index_api docker_remote_api - + remote_api_client_libraries diff --git a/docs/sources/commandline/cli.rst b/docs/sources/commandline/cli.rst index 62dd3707a1..71a902d46f 100644 --- a/docs/sources/commandline/cli.rst +++ b/docs/sources/commandline/cli.rst @@ -4,11 +4,8 @@ .. _cli: -Overview -====================== - -Docker Usage -~~~~~~~~~~~~~~~~~~ +Command Line Help +----------------- To list available commands, either run ``docker`` with no parameters or execute ``docker help``:: @@ -21,71 +18,666 @@ To list available commands, either run ``docker`` with no parameters or execute ... +.. _cli_attach: + +``attach`` +---------- + +:: + + Usage: docker attach CONTAINER + + Attach to a running container. + +You can detach from the container again (and leave it running) with +``CTRL-c`` (for a quiet exit) or ``CTRL-\`` to get a stacktrace of +the Docker client when it quits. + +To stop a container, use ``docker stop`` + +To kill the container, use ``docker kill`` + +.. _cli_attach_examples: + +Examples: +~~~~~~~~~ + +.. code-block:: bash + + $ ID=$(sudo docker run -d ubuntu /usr/bin/top -b) + $ sudo docker attach $ID + top - 02:05:52 up 3:05, 0 users, load average: 0.01, 0.02, 0.05 + Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie + Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st + Mem: 373572k total, 355560k used, 18012k free, 27872k buffers + Swap: 786428k total, 0k used, 786428k free, 221740k cached + + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND + 1 root 20 0 17200 1116 912 R 0 0.3 0:00.03 top + + top - 02:05:55 up 3:05, 0 users, load average: 0.01, 0.02, 0.05 + Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie + Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st + Mem: 373572k total, 355244k used, 18328k free, 27872k buffers + Swap: 786428k total, 0k used, 786428k free, 221776k cached + + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND + 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top -Available Commands -~~~~~~~~~~~~~~~~~~ + top - 02:05:58 up 3:06, 0 users, load average: 0.01, 0.02, 0.05 + Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie + Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st + Mem: 373572k total, 355780k used, 17792k free, 27880k buffers + Swap: 786428k total, 0k used, 786428k free, 221776k cached -.. include:: command/attach.rst + PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND + 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top + ^C$ + $ sudo docker stop $ID -.. include:: command/build.rst +.. _cli_build: -.. include:: command/commit.rst +``build`` +--------- -.. include:: command/cp.rst +:: -.. include:: command/diff.rst + Usage: docker build [OPTIONS] PATH | URL | - + Build a new container image from the source code at PATH + -t="": Repository name (and optionally a tag) to be applied to the resulting image in case of success. + -q=false: Suppress verbose build output. + -no-cache: Do not use the cache when building the image. + -rm: Remove intermediate containers after a successful build + When a single Dockerfile is given as URL, then no context is set. When a git repository is set as URL, the repository is used as context -.. include:: command/events.rst +.. _cli_build_examples: -.. include:: command/export.rst +Examples +~~~~~~~~ -.. include:: command/history.rst +.. code-block:: bash -.. include:: command/images.rst + sudo docker build . -.. include:: command/import.rst +This will read the ``Dockerfile`` from the current directory. It will +also send any other files and directories found in the current +directory to the ``docker`` daemon. -.. include:: command/info.rst +The contents of this directory would be used by ``ADD`` commands found +within the ``Dockerfile``. This will send a lot of data to the +``docker`` daemon if the current directory contains a lot of data. If +the absolute path is provided instead of ``.`` then only the files and +directories required by the ADD commands from the ``Dockerfile`` will be +added to the context and transferred to the ``docker`` daemon. -.. include:: command/insert.rst +.. code-block:: bash -.. include:: command/inspect.rst + sudo docker build -t vieux/apache:2.0 . + +This will build like the previous example, but it will then tag the +resulting image. The repository name will be ``vieux/apache`` and the +tag will be ``2.0`` + + +.. code-block:: bash + + sudo docker build - < Dockerfile + +This will read a ``Dockerfile`` from *stdin* without context. Due to +the lack of a context, no contents of any local directory will be sent +to the ``docker`` daemon. ``ADD`` doesn't work when running in this +mode because the absence of the context provides no source files to +copy to the container. + + +.. code-block:: bash + + sudo docker build github.com/creack/docker-firefox + +This will clone the Github repository and use it as context. The +``Dockerfile`` at the root of the repository is used as +``Dockerfile``. Note that you can specify an arbitrary git repository +by using the ``git://`` schema. + + +.. _cli_commit: + +``commit`` +---------- + +:: + + Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY [TAG]] + + Create a new image from a container's changes + + -m="": Commit message + -author="": Author (eg. "John Hannibal Smith " + -run="": Configuration to be applied when the image is launched with `docker run`. + (ex: '{"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}') + +Full -run example (multiline is ok within a single quote ``'``) + +:: + + $ sudo docker commit -run=' + { + "Entrypoint" : null, + "Privileged" : false, + "User" : "", + "VolumesFrom" : "", + "Cmd" : ["cat", "-e", "/etc/resolv.conf"], + "Dns" : ["8.8.8.8", "8.8.4.4"], + "MemorySwap" : 0, + "AttachStdin" : false, + "AttachStderr" : false, + "CpuShares" : 0, + "OpenStdin" : false, + "Volumes" : null, + "Hostname" : "122612f45831", + "PortSpecs" : ["22", "80", "443"], + "Image" : "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc", + "Tty" : false, + "Env" : [ + "HOME=/", + "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + ], + "StdinOnce" : false, + "Domainname" : "", + "WorkingDir" : "/", + "NetworkDisabled" : false, + "Memory" : 0, + "AttachStdout" : false + }' $CONTAINER_ID + +.. _cli_cp: + +``cp`` +------ + +:: + + Usage: docker cp CONTAINER:RESOURCE HOSTPATH + + Copy files/folders from the containers filesystem to the host + path. Paths are relative to the root of the filesystem. + +.. _cli_diff: + +``diff`` +-------- + +:: + + Usage: docker diff CONTAINER [OPTIONS] + + Inspect changes on a container's filesystem + +.. _cli_events: + +``events`` +---------- + +:: + + Usage: docker events + + Get real time events from the server + +.. _cli_events_example: + +Examples +~~~~~~~~ + +You'll need two shells for this example. + +Shell 1: Listening for events +............................. + +.. code-block:: bash + + $ sudo docker events + +Shell 2: Start and Stop a Container +................................... + +.. code-block:: bash + + $ sudo docker start 4386fb97867d + $ sudo docker stop 4386fb97867d + +Shell 1: (Again .. now showing events) +...................................... + +.. code-block:: bash + + [2013-09-03 15:49:26 +0200 CEST] 4386fb97867d: (from 12de384bfb10) start + [2013-09-03 15:49:29 +0200 CEST] 4386fb97867d: (from 12de384bfb10) die + [2013-09-03 15:49:29 +0200 CEST] 4386fb97867d: (from 12de384bfb10) stop + + +.. _cli_export: + +``export`` +---------- + +:: + + Usage: docker export CONTAINER + + Export the contents of a filesystem as a tar archive + +.. _cli_history: + +``history`` +----------- + +:: + + Usage: docker history [OPTIONS] IMAGE + + Show the history of an image + +.. _cli_images: + +``images`` +---------- + +:: + + Usage: docker images [OPTIONS] [NAME] + + List images + + -a=false: show all images + -q=false: only show numeric IDs + -viz=false: output in graphviz format + +Displaying images visually +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +:: + + sudo docker images -viz | dot -Tpng -o docker.png + +.. image:: docker_images.gif + :alt: Example inheritance graph of Docker images. + +.. _cli_import: + +``import`` +---------- + +:: + + Usage: docker import URL|- [REPOSITORY [TAG]] + + Create a new filesystem image from the contents of a tarball + +At this time, the URL must start with ``http`` and point to a single +file archive (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) containing a +root filesystem. If you would like to import from a local directory or +archive, you can use the ``-`` parameter to take the data from +standard in. + +Examples +~~~~~~~~ + +Import from a remote location +............................. + +``$ sudo docker import http://example.com/exampleimage.tgz exampleimagerepo`` + +Import from a local file +........................ + +Import to docker via pipe and standard in + +``$ cat exampleimage.tgz | sudo docker import - exampleimagelocal`` + +Import from a local directory +............................. + +``$ sudo tar -c . | docker import - exampleimagedir`` + +Note the ``sudo`` in this example -- you must preserve the ownership +of the files (especially root ownership) during the archiving with +tar. If you are not root (or sudo) when you tar, then the ownerships +might not get preserved. + +.. _cli_info: + +``info`` +-------- + +:: + + Usage: docker info + + Display system-wide information. + +.. _cli_insert: + +``insert`` +---------- + +:: + + Usage: docker insert IMAGE URL PATH + + Insert a file from URL in the IMAGE at PATH + +Examples +~~~~~~~~ + +Insert file from github +....................... + +.. code-block:: bash + + $ sudo docker insert 8283e18b24bc https://raw.github.com/metalivedev/django/master/postinstall /tmp/postinstall.sh + +.. _cli_inspect: + +``inspect`` +----------- + +:: + + Usage: docker inspect [OPTIONS] CONTAINER + + Return low-level information on a container + +.. _cli_kill: + +``kill`` +-------- + +:: + + Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...] + + Kill a running container + +.. _cli_login: + +``login`` +--------- + +:: + + Usage: docker login [OPTIONS] [SERVER] + + Register or Login to the docker registry server + + -e="": email + -p="": password + -u="": username + + If you want to login to a private registry you can + specify this by adding the server name. + + example: + docker login localhost:8080 + + +.. _cli_logs: + +``logs`` +-------- + + +:: + + Usage: docker logs [OPTIONS] CONTAINER + + Fetch the logs of a container + + +.. _cli_port: + +``port`` +-------- + +:: + + Usage: docker port [OPTIONS] CONTAINER PRIVATE_PORT + + Lookup the public-facing port which is NAT-ed to PRIVATE_PORT + + +.. _cli_ps: + +``ps`` +------ + +:: + + Usage: docker ps [OPTIONS] + + List containers + + -a=false: Show all containers. Only running containers are shown by default. + -notrunc=false: Don't truncate output + -q=false: Only display numeric IDs + +.. _cli_pull: + +``pull`` +-------- + +:: + + Usage: docker pull NAME + + Pull an image or a repository from the registry + + +.. _cli_push: + +``push`` +-------- + +:: + + Usage: docker push NAME + + Push an image or a repository to the registry + + +.. _cli_restart: + +``restart`` +----------- + +:: + + Usage: docker restart [OPTIONS] NAME + + Restart a running container + +.. _cli_rm: + +``rm`` +------ + +:: + + Usage: docker rm [OPTIONS] CONTAINER + + Remove one or more containers + +.. _cli_rmi: + +``rmi`` +------- + +:: + + Usage: docker rmi IMAGE [IMAGE...] + + Remove one or more images + +.. _cli_run: + +``run`` +------- + +:: + + Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...] + + Run a command in a new container + + -a=map[]: Attach to stdin, stdout or stderr. + -c=0: CPU shares (relative weight) + -cidfile="": Write the container ID to the file + -d=false: Detached mode: Run container in the background, print new container id + -e=[]: Set environment variables + -h="": Container host name + -i=false: Keep stdin open even if not attached + -privileged=false: Give extended privileges to this container + -m=0: Memory limit (in bytes) + -n=true: Enable networking for this container + -p=[]: Map a network port to the container + -rm=false: Automatically remove the container when it exits (incompatible with -d) + -t=false: Allocate a pseudo-tty + -u="": Username or UID + -dns=[]: Set custom dns servers for the container + -v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro]. If "container-dir" is missing, then docker creates a new volume. + -volumes-from="": Mount all volumes from the given container. + -entrypoint="": Overwrite the default entrypoint set by the image. + -w="": Working directory inside the container + -lxc-conf=[]: Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" + +Examples +~~~~~~~~ + +.. code-block:: bash + + sudo docker run -cidfile /tmp/docker_test.cid ubuntu echo "test" + +This will create a container and print "test" to the console. The +``cidfile`` flag makes docker attempt to create a new file and write the +container ID to it. If the file exists already, docker will return an +error. Docker will close this file when docker run exits. + +.. code-block:: bash + + docker run mount -t tmpfs none /var/spool/squid + +This will *not* work, because by default, most potentially dangerous +kernel capabilities are dropped; including ``cap_sys_admin`` (which is +required to mount filesystems). However, the ``-privileged`` flag will +allow it to run: + +.. code-block:: bash + + docker run -privileged mount -t tmpfs none /var/spool/squid + +The ``-privileged`` flag gives *all* capabilities to the container, +and it also lifts all the limitations enforced by the ``device`` +cgroup controller. In other words, the container can then do almost +everything that the host can do. This flag exists to allow special +use-cases, like running Docker within Docker. + +.. code-block:: bash + + docker run -w /path/to/dir/ -i -t ubuntu pwd + +The ``-w`` lets the command being executed inside directory given, +here /path/to/dir/. If the path does not exists it is created inside the +container. + +.. code-block:: bash + + docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd + +The ``-v`` flag mounts the current working directory into the container. +The ``-w`` lets the command being executed inside the current +working directory, by changing into the directory to the value +returned by ``pwd``. So this combination executes the command +using the container, but inside the current working directory. + +.. _cli_search: + +``search`` +---------- + +:: + + Usage: docker search TERM + + Searches for the TERM parameter on the Docker index and prints out + a list of repositories that match. + +.. _cli_start: + +``start`` +--------- + +:: + + Usage: docker start [OPTIONS] NAME + + Start a stopped container + +.. _cli_stop: + +``stop`` +-------- + +:: + + Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...] + + Stop a running container + + -t=10: Number of seconds to wait for the container to stop before killing it. + +.. _cli_tag: + +``tag`` +------- + +:: + + Usage: docker tag [OPTIONS] IMAGE REPOSITORY [TAG] + + Tag an image into a repository + + -f=false: Force + +.. _cli_top: + +``top`` +------- + +:: + + Usage: docker top CONTAINER + + Lookup the running processes of a container + +.. _cli_version: + +``version`` +----------- + +Show the version of the docker client, daemon, and latest released version. + + +.. _cli_wait: + +``wait`` +-------- + +:: + + Usage: docker wait [OPTIONS] NAME + + Block until a container stops, then print its exit code. -.. include:: command/kill.rst - -.. include:: command/login.rst - -.. include:: command/logs.rst - -.. include:: command/port.rst - -.. include:: command/ps.rst - -.. include:: command/pull.rst - -.. include:: command/push.rst - -.. include:: command/restart.rst - -.. include:: command/rm.rst - -.. include:: command/rmi.rst - -.. include:: command/run.rst - -.. include:: command/search.rst - -.. include:: command/start.rst - -.. include:: command/stop.rst - -.. include:: command/tag.rst - -.. include:: command/top.rst - -.. include:: command/version.rst - -.. include:: command/wait.rst diff --git a/docs/sources/commandline/command/attach.rst b/docs/sources/commandline/command/attach.rst deleted file mode 100644 index 12ed802a02..0000000000 --- a/docs/sources/commandline/command/attach.rst +++ /dev/null @@ -1,59 +0,0 @@ -:title: Attach Command -:description: Attach to a running container -:keywords: attach, container, docker, documentation - -=========================================== -``attach`` -- Attach to a running container -=========================================== - -:: - - Usage: docker attach CONTAINER - - Attach to a running container. - -You can detach from the container again (and leave it running) with -``CTRL-c`` (for a quiet exit) or ``CTRL-\`` to get a stacktrace of -the Docker client when it quits. - -To stop a container, use ``docker stop`` - -To kill the container, use ``docker kill`` - -Examples: ---------- - -.. code-block:: bash - - $ ID=$(sudo docker run -d ubuntu /usr/bin/top -b) - $ sudo docker attach $ID - top - 02:05:52 up 3:05, 0 users, load average: 0.01, 0.02, 0.05 - Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie - Cpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st - Mem: 373572k total, 355560k used, 18012k free, 27872k buffers - Swap: 786428k total, 0k used, 786428k free, 221740k cached - - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 1 root 20 0 17200 1116 912 R 0 0.3 0:00.03 top - - top - 02:05:55 up 3:05, 0 users, load average: 0.01, 0.02, 0.05 - Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie - Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st - Mem: 373572k total, 355244k used, 18328k free, 27872k buffers - Swap: 786428k total, 0k used, 786428k free, 221776k cached - - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top - - - top - 02:05:58 up 3:06, 0 users, load average: 0.01, 0.02, 0.05 - Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie - Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st - Mem: 373572k total, 355780k used, 17792k free, 27880k buffers - Swap: 786428k total, 0k used, 786428k free, 221776k cached - - PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND - 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top - ^C$ - $ sudo docker stop $ID - diff --git a/docs/sources/commandline/command/build.rst b/docs/sources/commandline/command/build.rst deleted file mode 100644 index 5ce70d85d9..0000000000 --- a/docs/sources/commandline/command/build.rst +++ /dev/null @@ -1,65 +0,0 @@ -:title: Build Command -:description: Build a new image from the Dockerfile passed via stdin -:keywords: build, docker, container, documentation - -================================================ -``build`` -- Build a container from a Dockerfile -================================================ - -:: - - Usage: docker build [OPTIONS] PATH | URL | - - Build a new container image from the source code at PATH - -t="": Repository name (and optionally a tag) to be applied to the resulting image in case of success. - -q=false: Suppress verbose build output. - -no-cache: Do not use the cache when building the image. - -rm: Remove intermediate containers after a successful build - When a single Dockerfile is given as URL, then no context is set. When a git repository is set as URL, the repository is used as context - - -Examples --------- - -.. code-block:: bash - - sudo docker build . - -This will read the ``Dockerfile`` from the current directory. It will -also send any other files and directories found in the current -directory to the ``docker`` daemon. - -The contents of this directory would be used by ``ADD`` commands found -within the ``Dockerfile``. This will send a lot of data to the -``docker`` daemon if the current directory contains a lot of data. If -the absolute path is provided instead of ``.`` then only the files and -directories required by the ADD commands from the ``Dockerfile`` will be -added to the context and transferred to the ``docker`` daemon. - -.. code-block:: bash - - sudo docker build -t vieux/apache:2.0 . - -This will build like the previous example, but it will then tag the -resulting image. The repository name will be ``vieux/apache`` and the -tag will be ``2.0`` - - -.. code-block:: bash - - sudo docker build - < Dockerfile - -This will read a ``Dockerfile`` from *stdin* without context. Due to -the lack of a context, no contents of any local directory will be sent -to the ``docker`` daemon. ``ADD`` doesn't work when running in this -mode because the absence of the context provides no source files to -copy to the container. - - -.. code-block:: bash - - sudo docker build github.com/creack/docker-firefox - -This will clone the Github repository and use it as context. The -``Dockerfile`` at the root of the repository is used as -``Dockerfile``. Note that you can specify an arbitrary git repository -by using the ``git://`` schema. diff --git a/docs/sources/commandline/command/commit.rst b/docs/sources/commandline/command/commit.rst deleted file mode 100644 index ef0d863688..0000000000 --- a/docs/sources/commandline/command/commit.rst +++ /dev/null @@ -1,52 +0,0 @@ -:title: Commit Command -:description: Create a new image from a container's changes -:keywords: commit, docker, container, documentation - -=========================================================== -``commit`` -- Create a new image from a container's changes -=========================================================== - -:: - - Usage: docker commit [OPTIONS] CONTAINER [REPOSITORY [TAG]] - - Create a new image from a container's changes - - -m="": Commit message - -author="": Author (eg. "John Hannibal Smith " - -run="": Configuration to be applied when the image is launched with `docker run`. - (ex: '{"Cmd": ["cat", "/world"], "PortSpecs": ["22"]}') - -Full -run example (multiline is ok within a single quote ``'``) - -:: - - $ sudo docker commit -run=' - { - "Entrypoint" : null, - "Privileged" : false, - "User" : "", - "VolumesFrom" : "", - "Cmd" : ["cat", "-e", "/etc/resolv.conf"], - "Dns" : ["8.8.8.8", "8.8.4.4"], - "MemorySwap" : 0, - "AttachStdin" : false, - "AttachStderr" : false, - "CpuShares" : 0, - "OpenStdin" : false, - "Volumes" : null, - "Hostname" : "122612f45831", - "PortSpecs" : ["22", "80", "443"], - "Image" : "b750fe79269d2ec9a3c593ef05b4332b1d1a02a62b4accb2c21d589ff2f5f2dc", - "Tty" : false, - "Env" : [ - "HOME=/", - "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - ], - "StdinOnce" : false, - "Domainname" : "", - "WorkingDir" : "/", - "NetworkDisabled" : false, - "Memory" : 0, - "AttachStdout" : false - }' $CONTAINER_ID diff --git a/docs/sources/commandline/command/cp.rst b/docs/sources/commandline/command/cp.rst deleted file mode 100644 index ea84fa1f90..0000000000 --- a/docs/sources/commandline/command/cp.rst +++ /dev/null @@ -1,14 +0,0 @@ -:title: Cp Command -:description: Copy files/folders from the containers filesystem to the host path -:keywords: cp, docker, container, documentation, copy - -============================================================================ -``cp`` -- Copy files/folders from the containers filesystem to the host path -============================================================================ - -:: - - Usage: docker cp CONTAINER:RESOURCE HOSTPATH - - Copy files/folders from the containers filesystem to the host - path. Paths are relative to the root of the filesystem. diff --git a/docs/sources/commandline/command/diff.rst b/docs/sources/commandline/command/diff.rst deleted file mode 100644 index 2901a7f215..0000000000 --- a/docs/sources/commandline/command/diff.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Diff Command -:description: Inspect changes on a container's filesystem -:keywords: diff, docker, container, documentation - -======================================================= -``diff`` -- Inspect changes on a container's filesystem -======================================================= - -:: - - Usage: docker diff CONTAINER [OPTIONS] - - Inspect changes on a container's filesystem diff --git a/docs/sources/commandline/command/events.rst b/docs/sources/commandline/command/events.rst deleted file mode 100644 index b8dd591fb1..0000000000 --- a/docs/sources/commandline/command/events.rst +++ /dev/null @@ -1,34 +0,0 @@ -:title: Events Command -:description: Get real time events from the server -:keywords: events, docker, documentation - -================================================================= -``events`` -- Get real time events from the server -================================================================= - -:: - - Usage: docker events - - Get real time events from the server - -Examples --------- - -Starting and stopping a container -................................. - -.. code-block:: bash - - $ sudo docker start 4386fb97867d - $ sudo docker stop 4386fb97867d - -In another shell - -.. code-block:: bash - - $ sudo docker events - [2013-09-03 15:49:26 +0200 CEST] 4386fb97867d: (from 12de384bfb10) start - [2013-09-03 15:49:29 +0200 CEST] 4386fb97867d: (from 12de384bfb10) die - [2013-09-03 15:49:29 +0200 CEST] 4386fb97867d: (from 12de384bfb10) stop - diff --git a/docs/sources/commandline/command/export.rst b/docs/sources/commandline/command/export.rst deleted file mode 100644 index 9d7e6b369c..0000000000 --- a/docs/sources/commandline/command/export.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Export Command -:description: Export the contents of a filesystem as a tar archive -:keywords: export, docker, container, documentation - -================================================================= -``export`` -- Stream the contents of a container as a tar archive -================================================================= - -:: - - Usage: docker export CONTAINER - - Export the contents of a filesystem as a tar archive diff --git a/docs/sources/commandline/command/history.rst b/docs/sources/commandline/command/history.rst deleted file mode 100644 index 2f9d3f2814..0000000000 --- a/docs/sources/commandline/command/history.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: History Command -:description: Show the history of an image -:keywords: history, docker, container, documentation - -=========================================== -``history`` -- Show the history of an image -=========================================== - -:: - - Usage: docker history [OPTIONS] IMAGE - - Show the history of an image diff --git a/docs/sources/commandline/command/images.rst b/docs/sources/commandline/command/images.rst deleted file mode 100644 index 279bf240c9..0000000000 --- a/docs/sources/commandline/command/images.rst +++ /dev/null @@ -1,26 +0,0 @@ -:title: Images Command -:description: List images -:keywords: images, docker, container, documentation - -========================= -``images`` -- List images -========================= - -:: - - Usage: docker images [OPTIONS] [NAME] - - List images - - -a=false: show all images - -q=false: only show numeric IDs - -viz=false: output in graphviz format - -Displaying images visually --------------------------- - -:: - - sudo docker images -viz | dot -Tpng -o docker.png - -.. image:: https://docs.docker.io/en/latest/_static/docker_images.gif diff --git a/docs/sources/commandline/command/import.rst b/docs/sources/commandline/command/import.rst deleted file mode 100644 index e236c5bc2b..0000000000 --- a/docs/sources/commandline/command/import.rst +++ /dev/null @@ -1,44 +0,0 @@ -:title: Import Command -:description: Create a new filesystem image from the contents of a tarball -:keywords: import, tarball, docker, url, documentation - -========================================================================== -``import`` -- Create a new filesystem image from the contents of a tarball -========================================================================== - -:: - - Usage: docker import URL|- [REPOSITORY [TAG]] - - Create a new filesystem image from the contents of a tarball - -At this time, the URL must start with ``http`` and point to a single -file archive (.tar, .tar.gz, .tgz, .bzip, .tar.xz, .txz) containing a -root filesystem. If you would like to import from a local directory or -archive, you can use the ``-`` parameter to take the data from -standard in. - -Examples --------- - -Import from a remote location -............................. - -``$ sudo docker import http://example.com/exampleimage.tgz exampleimagerepo`` - -Import from a local file -........................ - -Import to docker via pipe and standard in - -``$ cat exampleimage.tgz | sudo docker import - exampleimagelocal`` - -Import from a local directory -............................. - -``$ sudo tar -c . | docker import - exampleimagedir`` - -Note the ``sudo`` in this example -- you must preserve the ownership -of the files (especially root ownership) during the archiving with -tar. If you are not root (or sudo) when you tar, then the ownerships -might not get preserved. diff --git a/docs/sources/commandline/command/info.rst b/docs/sources/commandline/command/info.rst deleted file mode 100644 index 6df3486c53..0000000000 --- a/docs/sources/commandline/command/info.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Info Command -:description: Display system-wide information. -:keywords: info, docker, information, documentation - -=========================================== -``info`` -- Display system-wide information -=========================================== - -:: - - Usage: docker info - - Display system-wide information. diff --git a/docs/sources/commandline/command/insert.rst b/docs/sources/commandline/command/insert.rst deleted file mode 100644 index 0f2612c9af..0000000000 --- a/docs/sources/commandline/command/insert.rst +++ /dev/null @@ -1,23 +0,0 @@ -:title: Insert Command -:description: Insert a file in an image -:keywords: insert, image, docker, documentation - -========================================================================== -``insert`` -- Insert a file in an image -========================================================================== - -:: - - Usage: docker insert IMAGE URL PATH - - Insert a file from URL in the IMAGE at PATH - -Examples --------- - -Insert file from github -....................... - -.. code-block:: bash - - $ sudo docker insert 8283e18b24bc https://raw.github.com/metalivedev/django/master/postinstall /tmp/postinstall.sh diff --git a/docs/sources/commandline/command/inspect.rst b/docs/sources/commandline/command/inspect.rst deleted file mode 100644 index 90dbe959eb..0000000000 --- a/docs/sources/commandline/command/inspect.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Inspect Command -:description: Return low-level information on a container -:keywords: inspect, container, docker, documentation - -========================================================== -``inspect`` -- Return low-level information on a container -========================================================== - -:: - - Usage: docker inspect [OPTIONS] CONTAINER - - Return low-level information on a container diff --git a/docs/sources/commandline/command/kill.rst b/docs/sources/commandline/command/kill.rst deleted file mode 100644 index f53d3883b0..0000000000 --- a/docs/sources/commandline/command/kill.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Kill Command -:description: Kill a running container -:keywords: kill, container, docker, documentation - -==================================== -``kill`` -- Kill a running container -==================================== - -:: - - Usage: docker kill [OPTIONS] CONTAINER [CONTAINER...] - - Kill a running container diff --git a/docs/sources/commandline/command/login.rst b/docs/sources/commandline/command/login.rst deleted file mode 100644 index 46f354d6be..0000000000 --- a/docs/sources/commandline/command/login.rst +++ /dev/null @@ -1,24 +0,0 @@ -:title: Login Command -:description: Register or Login to the docker registry server -:keywords: login, docker, documentation - -============================================================ -``login`` -- Register or Login to the docker registry server -============================================================ - -:: - - Usage: docker login [OPTIONS] [SERVER] - - Register or Login to the docker registry server - - -e="": email - -p="": password - -u="": username - - If you want to login to a private registry you can - specify this by adding the server name. - - example: - docker login localhost:8080 - diff --git a/docs/sources/commandline/command/logs.rst b/docs/sources/commandline/command/logs.rst deleted file mode 100644 index a3423f6e0c..0000000000 --- a/docs/sources/commandline/command/logs.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Logs Command -:description: Fetch the logs of a container -:keywords: logs, container, docker, documentation - -========================================= -``logs`` -- Fetch the logs of a container -========================================= - -:: - - Usage: docker logs [OPTIONS] CONTAINER - - Fetch the logs of a container diff --git a/docs/sources/commandline/command/port.rst b/docs/sources/commandline/command/port.rst deleted file mode 100644 index 8d59fedab6..0000000000 --- a/docs/sources/commandline/command/port.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Port Command -:description: Lookup the public-facing port which is NAT-ed to PRIVATE_PORT -:keywords: port, docker, container, documentation - -========================================================================= -``port`` -- Lookup the public-facing port which is NAT-ed to PRIVATE_PORT -========================================================================= - -:: - - Usage: docker port [OPTIONS] CONTAINER PRIVATE_PORT - - Lookup the public-facing port which is NAT-ed to PRIVATE_PORT diff --git a/docs/sources/commandline/command/ps.rst b/docs/sources/commandline/command/ps.rst deleted file mode 100644 index 597dbd9ae7..0000000000 --- a/docs/sources/commandline/command/ps.rst +++ /dev/null @@ -1,17 +0,0 @@ -:title: Ps Command -:description: List containers -:keywords: ps, docker, documentation, container - -========================= -``ps`` -- List containers -========================= - -:: - - Usage: docker ps [OPTIONS] - - List containers - - -a=false: Show all containers. Only running containers are shown by default. - -notrunc=false: Don't truncate output - -q=false: Only display numeric IDs diff --git a/docs/sources/commandline/command/pull.rst b/docs/sources/commandline/command/pull.rst deleted file mode 100644 index 4348f28d0f..0000000000 --- a/docs/sources/commandline/command/pull.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Pull Command -:description: Pull an image or a repository from the registry -:keywords: pull, image, repo, repository, documentation, docker - -========================================================================= -``pull`` -- Pull an image or a repository from the docker registry server -========================================================================= - -:: - - Usage: docker pull NAME - - Pull an image or a repository from the registry diff --git a/docs/sources/commandline/command/push.rst b/docs/sources/commandline/command/push.rst deleted file mode 100644 index 9304f9acc5..0000000000 --- a/docs/sources/commandline/command/push.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Push Command -:description: Push an image or a repository to the registry -:keywords: push, docker, image, repository, documentation, repo - -======================================================================= -``push`` -- Push an image or a repository to the docker registry server -======================================================================= - -:: - - Usage: docker push NAME - - Push an image or a repository to the registry diff --git a/docs/sources/commandline/command/restart.rst b/docs/sources/commandline/command/restart.rst deleted file mode 100644 index dfc0dfea6e..0000000000 --- a/docs/sources/commandline/command/restart.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Restart Command -:description: Restart a running container -:keywords: restart, container, docker, documentation - -========================================== -``restart`` -- Restart a running container -========================================== - -:: - - Usage: docker restart [OPTIONS] NAME - - Restart a running container diff --git a/docs/sources/commandline/command/rm.rst b/docs/sources/commandline/command/rm.rst deleted file mode 100644 index 8a2309ce79..0000000000 --- a/docs/sources/commandline/command/rm.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Rm Command -:description: Remove a container -:keywords: remove, container, docker, documentation, rm - -============================ -``rm`` -- Remove a container -============================ - -:: - - Usage: docker rm [OPTIONS] CONTAINER - - Remove one or more containers diff --git a/docs/sources/commandline/command/rmi.rst b/docs/sources/commandline/command/rmi.rst deleted file mode 100644 index 954e5222c6..0000000000 --- a/docs/sources/commandline/command/rmi.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Rmi Command -:description: Remove an image -:keywords: rmi, remove, image, docker, documentation - -========================== -``rmi`` -- Remove an image -========================== - -:: - - Usage: docker rmi IMAGE [IMAGE...] - - Remove one or more images diff --git a/docs/sources/commandline/command/run.rst b/docs/sources/commandline/command/run.rst deleted file mode 100644 index b68e08303f..0000000000 --- a/docs/sources/commandline/command/run.rst +++ /dev/null @@ -1,85 +0,0 @@ -:title: Run Command -:description: Run a command in a new container -:keywords: run, container, docker, documentation - -=========================================== -``run`` -- Run a command in a new container -=========================================== - -:: - - Usage: docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...] - - Run a command in a new container - - -a=map[]: Attach to stdin, stdout or stderr. - -c=0: CPU shares (relative weight) - -cidfile="": Write the container ID to the file - -d=false: Detached mode: Run container in the background, print new container id - -e=[]: Set environment variables - -h="": Container host name - -i=false: Keep stdin open even if not attached - -privileged=false: Give extended privileges to this container - -m=0: Memory limit (in bytes) - -n=true: Enable networking for this container - -p=[]: Map a network port to the container - -rm=false: Automatically remove the container when it exits (incompatible with -d) - -t=false: Allocate a pseudo-tty - -u="": Username or UID - -dns=[]: Set custom dns servers for the container - -v=[]: Create a bind mount with: [host-dir]:[container-dir]:[rw|ro]. If "container-dir" is missing, then docker creates a new volume. - -volumes-from="": Mount all volumes from the given container. - -entrypoint="": Overwrite the default entrypoint set by the image. - -w="": Working directory inside the container - -lxc-conf=[]: Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1" - -Examples --------- - -.. code-block:: bash - - sudo docker run -cidfile /tmp/docker_test.cid ubuntu echo "test" - -This will create a container and print "test" to the console. The -``cidfile`` flag makes docker attempt to create a new file and write the -container ID to it. If the file exists already, docker will return an -error. Docker will close this file when docker run exits. - -.. code-block:: bash - - docker run mount -t tmpfs none /var/spool/squid - -This will *not* work, because by default, most potentially dangerous -kernel capabilities are dropped; including ``cap_sys_admin`` (which is -required to mount filesystems). However, the ``-privileged`` flag will -allow it to run: - -.. code-block:: bash - - docker run -privileged mount -t tmpfs none /var/spool/squid - -The ``-privileged`` flag gives *all* capabilities to the container, -and it also lifts all the limitations enforced by the ``device`` -cgroup controller. In other words, the container can then do almost -everything that the host can do. This flag exists to allow special -use-cases, like running Docker within Docker. - -.. code-block:: bash - - docker run -w /path/to/dir/ -i -t ubuntu pwd - -The ``-w`` lets the command being executed inside directory given, -here /path/to/dir/. If the path does not exists it is created inside the -container. - -.. code-block:: bash - - docker run -v `pwd`:`pwd` -w `pwd` -i -t ubuntu pwd - -The ``-v`` flag mounts the current working directory into the container. -The ``-w`` lets the command being executed inside the current -working directory, by changing into the directory to the value -returned by ``pwd``. So this combination executes the command -using the container, but inside the current working directory. - - diff --git a/docs/sources/commandline/command/search.rst b/docs/sources/commandline/command/search.rst deleted file mode 100644 index 8107016a41..0000000000 --- a/docs/sources/commandline/command/search.rst +++ /dev/null @@ -1,14 +0,0 @@ -:title: Search Command -:description: Searches for the TERM parameter on the Docker index and prints out a list of repositories that match. -:keywords: search, docker, image, documentation - -=================================================================== -``search`` -- Search for an image in the docker index -=================================================================== - -:: - - Usage: docker search TERM - - Searches for the TERM parameter on the Docker index and prints out - a list of repositories that match. diff --git a/docs/sources/commandline/command/start.rst b/docs/sources/commandline/command/start.rst deleted file mode 100644 index b70ad21cfd..0000000000 --- a/docs/sources/commandline/command/start.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Start Command -:description: Start a stopped container -:keywords: start, docker, container, documentation - -====================================== -``start`` -- Start a stopped container -====================================== - -:: - - Usage: docker start [OPTIONS] NAME - - Start a stopped container diff --git a/docs/sources/commandline/command/stop.rst b/docs/sources/commandline/command/stop.rst deleted file mode 100644 index 6a64908eae..0000000000 --- a/docs/sources/commandline/command/stop.rst +++ /dev/null @@ -1,15 +0,0 @@ -:title: Stop Command -:description: Stop a running container -:keywords: stop, container, docker, documentation - -==================================== -``stop`` -- Stop a running container -==================================== - -:: - - Usage: docker stop [OPTIONS] CONTAINER [CONTAINER...] - - Stop a running container - - -t=10: Number of seconds to wait for the container to stop before killing it. diff --git a/docs/sources/commandline/command/tag.rst b/docs/sources/commandline/command/tag.rst deleted file mode 100644 index a9e831aae9..0000000000 --- a/docs/sources/commandline/command/tag.rst +++ /dev/null @@ -1,15 +0,0 @@ -:title: Tag Command -:description: Tag an image into a repository -:keywords: tag, docker, image, repository, documentation, repo - -========================================= -``tag`` -- Tag an image into a repository -========================================= - -:: - - Usage: docker tag [OPTIONS] IMAGE REPOSITORY [TAG] - - Tag an image into a repository - - -f=false: Force diff --git a/docs/sources/commandline/command/top.rst b/docs/sources/commandline/command/top.rst deleted file mode 100644 index bdd35adcfa..0000000000 --- a/docs/sources/commandline/command/top.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Top Command -:description: Lookup the running processes of a container -:keywords: top, docker, container, documentation - -======================================================= -``top`` -- Lookup the running processes of a container -======================================================= - -:: - - Usage: docker top CONTAINER - - Lookup the running processes of a container diff --git a/docs/sources/commandline/command/version.rst b/docs/sources/commandline/command/version.rst deleted file mode 100644 index fb3d3b450e..0000000000 --- a/docs/sources/commandline/command/version.rst +++ /dev/null @@ -1,7 +0,0 @@ -:title: Version Command -:description: -:keywords: version, docker, documentation - -================================================== -``version`` -- Show the docker version information -================================================== diff --git a/docs/sources/commandline/command/wait.rst b/docs/sources/commandline/command/wait.rst deleted file mode 100644 index 23bd54513c..0000000000 --- a/docs/sources/commandline/command/wait.rst +++ /dev/null @@ -1,13 +0,0 @@ -:title: Wait Command -:description: Block until a container stops, then print its exit code. -:keywords: wait, docker, container, documentation - -=================================================================== -``wait`` -- Block until a container stops, then print its exit code -=================================================================== - -:: - - Usage: docker wait [OPTIONS] NAME - - Block until a container stops, then print its exit code. diff --git a/docs/sources/static_files/docker_images.gif b/docs/sources/commandline/docker_images.gif similarity index 100% rename from docs/sources/static_files/docker_images.gif rename to docs/sources/commandline/docker_images.gif diff --git a/docs/sources/commandline/index.rst b/docs/sources/commandline/index.rst index 0e7c8738b3..5536e1012e 100644 --- a/docs/sources/commandline/index.rst +++ b/docs/sources/commandline/index.rst @@ -1,6 +1,6 @@ :title: Commands -:description: -- todo: change me -:keywords: todo, commands, command line, help, docker, documentation +:description: docker command line interface +:keywords: commands, command line, help, docker Commands @@ -12,34 +12,3 @@ Contents: :maxdepth: 1 cli - attach - build - commit - cp - diff - events - export - history - images - import - info - insert - inspect - kill - login - logs - port - ps - pull - push - restart - rm - rmi - run - search - start - stop - tag - top - version - wait diff --git a/docs/sources/examples/hello_world.rst b/docs/sources/examples/hello_world.rst index 647a34aa1f..54ebdacc6a 100644 --- a/docs/sources/examples/hello_world.rst +++ b/docs/sources/examples/hello_world.rst @@ -178,4 +178,4 @@ you could skip to any of the other examples: * :ref:`running_ssh_service` * :ref:`running_couchdb_service` * :ref:`postgresql_service` -* :ref:`mongodb` +* :ref:`mongodb_image` diff --git a/docs/sources/index.rst b/docs/sources/index.rst index 99d2159aa7..88752ac3bf 100644 --- a/docs/sources/index.rst +++ b/docs/sources/index.rst @@ -2,8 +2,6 @@ :description: An overview of the Docker Documentation :keywords: containers, lxc, concepts, explanation -.. image:: https://www.docker.io/static/img/linked/dockerlogo-horizontal.png - Introduction ------------ From 240d5b3fa1b66f099b71c20ff8dc4ed1ecffc1d3 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Wed, 16 Oct 2013 20:10:20 +0000 Subject: [PATCH 44/48] Hack: don't run integration tests in /var/lib/docker/unit-tests; add missing cleanups in a few tests --- api_test.go | 1 + runtime_test.go | 60 ++++++++++++++++++++++++++++++++----------------- server_test.go | 1 + z_final_test.go | 2 +- 4 files changed, 42 insertions(+), 22 deletions(-) diff --git a/api_test.go b/api_test.go index fcb3bc8593..e047aba9e5 100644 --- a/api_test.go +++ b/api_test.go @@ -112,6 +112,7 @@ func TestGetInfo(t *testing.T) { func TestGetEvents(t *testing.T) { runtime := mkRuntime(t) + defer nuke(runtime) srv := &Server{ runtime: runtime, events: make([]utils.JSONMessage, 0, 64), diff --git a/runtime_test.go b/runtime_test.go index 1abbcc51e6..75081fff1e 100644 --- a/runtime_test.go +++ b/runtime_test.go @@ -87,45 +87,63 @@ func init() { NetworkBridgeIface = unitTestNetworkBridge - // Make it our Store root - if runtime, err := NewRuntimeFromDirectory(unitTestStoreBase, false); err != nil { - log.Fatalf("Unable to create a runtime for tests:", err) - } else { - globalRuntime = runtime - } + // Setup the base runtime, which will be duplicated for each test. + // (no tests are run directly in the base) + setupBaseImage() - // Cleanup any leftover container - for _, container := range globalRuntime.List() { - if err := globalRuntime.Destroy(container); err != nil { - log.Fatalf("Error destroying leftover container: %s", err) - } + // Create the "global runtime" with a long-running daemon for integration tests + spawnGlobalDaemon() + startFds, startGoroutines = utils.GetTotalUsedFds(), runtime.NumGoroutine() +} + + +func setupBaseImage() { + runtime, err := NewRuntimeFromDirectory(unitTestStoreBase, false) + if err != nil { + log.Fatalf("Unable to create a runtime for tests:", err) } // Create the "Server" + srv := &Server{ + runtime: runtime, + enableCors: false, + pullingPool: make(map[string]struct{}), + pushingPool: make(map[string]struct{}), + } + + // If the unit test is not found, try to download it. + if img, err := runtime.repositories.LookupImage(unitTestImageName); err != nil || img.ID != unitTestImageID { + // Retrieve the Image + if err := srv.ImagePull(unitTestImageName, "", os.Stdout, utils.NewStreamFormatter(false), nil, nil, true); err != nil { + log.Fatalf("Unable to pull the test image:", err) + } + } +} + + +func spawnGlobalDaemon() { + if globalRuntime != nil { + utils.Debugf("Global runtime already exists. Skipping.") + return + } + globalRuntime = mkRuntime(log.New(os.Stderr, "", 0)) srv := &Server{ runtime: globalRuntime, enableCors: false, pullingPool: make(map[string]struct{}), pushingPool: make(map[string]struct{}), } - // If the unit test is not found, try to download it. - if img, err := globalRuntime.repositories.LookupImage(unitTestImageName); err != nil || img.ID != unitTestImageID { - // Retrieve the Image - if err := srv.ImagePull(unitTestImageName, "", os.Stdout, utils.NewStreamFormatter(false), nil, nil, true); err != nil { - log.Fatalf("Unable to pull the test image:", err) - } - } + // Spawn a Daemon go func() { + utils.Debugf("Spawning global daemon for integration tests") if err := ListenAndServe(testDaemonProto, testDaemonAddr, srv, os.Getenv("DEBUG") != ""); err != nil { log.Fatalf("Unable to spawn the test daemon:", err) } }() - // Give some time to ListenAndServer to actually start + // FIXME: use inmem transports instead of tcp time.Sleep(time.Second) - - startFds, startGoroutines = utils.GetTotalUsedFds(), runtime.NumGoroutine() } // FIXME: test that ImagePull(json=true) send correct json output diff --git a/server_test.go b/server_test.go index ee9549d7b7..c13754b5ea 100644 --- a/server_test.go +++ b/server_test.go @@ -351,6 +351,7 @@ func TestPools(t *testing.T) { func TestLogEvent(t *testing.T) { runtime := mkRuntime(t) + defer nuke(runtime) srv := &Server{ runtime: runtime, events: make([]utils.JSONMessage, 0, 64), diff --git a/z_final_test.go b/z_final_test.go index 08a180baaf..837b5d13e6 100644 --- a/z_final_test.go +++ b/z_final_test.go @@ -11,7 +11,7 @@ func displayFdGoroutines(t *testing.T) { } func TestFinal(t *testing.T) { - cleanup(globalRuntime) + nuke(globalRuntime) t.Logf("Start Fds: %d, Start Goroutines: %d", startFds, startGoroutines) displayFdGoroutines(t) } From 5c175357aaa7e011e3535eeb1ee162450f390b9e Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Wed, 16 Oct 2013 20:44:15 +0000 Subject: [PATCH 45/48] Hack: fix tests which didn't cleanup properly --- auth/auth_test.go | 5 ++++- container_test.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/auth/auth_test.go b/auth/auth_test.go index 01aecae3da..5dc634a719 100644 --- a/auth/auth_test.go +++ b/auth/auth_test.go @@ -76,7 +76,7 @@ func TestCreateAccount(t *testing.T) { } func setupTempConfigFile() (*ConfigFile, error) { - root, err := ioutil.TempDir("", "docker-test") + root, err := ioutil.TempDir("", "docker-test-auth") if err != nil { return nil, err } @@ -101,6 +101,7 @@ func TestSameAuthDataPostSave(t *testing.T) { if err != nil { t.Fatal(err) } + defer os.RemoveAll(configFile.rootPath) err = SaveConfig(configFile) if err != nil { @@ -127,6 +128,7 @@ func TestResolveAuthConfigIndexServer(t *testing.T) { if err != nil { t.Fatal(err) } + defer os.RemoveAll(configFile.rootPath) for _, registry := range []string{"", IndexServerAddress()} { resolved := configFile.ResolveAuthConfig(registry) @@ -141,6 +143,7 @@ func TestResolveAuthConfigFullURL(t *testing.T) { if err != nil { t.Fatal(err) } + defer os.RemoveAll(configFile.rootPath) registryAuth := AuthConfig{ Username: "foo-user", diff --git a/container_test.go b/container_test.go index e678c98898..9fdddc9044 100644 --- a/container_test.go +++ b/container_test.go @@ -1189,7 +1189,7 @@ func BenchmarkRunParallel(b *testing.B) { } func tempDir(t *testing.T) string { - tmpDir, err := ioutil.TempDir("", "docker-test") + tmpDir, err := ioutil.TempDir("", "docker-test-container") if err != nil { t.Fatal(err) } From f34a62ea19b477bbaa74a09c04d5e8faf67c44a2 Mon Sep 17 00:00:00 2001 From: Travis Cline Date: Fri, 18 Oct 2013 00:34:29 -0500 Subject: [PATCH 46/48] Use heredoc to make expect script more clear --- contrib/mkimage-arch.sh | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/contrib/mkimage-arch.sh b/contrib/mkimage-arch.sh index cdc3c273d8..3b86022206 100755 --- a/contrib/mkimage-arch.sh +++ b/contrib/mkimage-arch.sh @@ -21,18 +21,20 @@ mkdir $ROOTFS #packages to ignore for space savings PKGIGNORE=linux,jfsutils,lvm2,cryptsetup,groff,man-db,man-pages,mdadm,pciutils,pcmciautils,reiserfsprogs,s-nail,xfsprogs -expect -c " +expect < Date: Fri, 18 Oct 2013 06:44:30 +0000 Subject: [PATCH 47/48] Increase readbility of unit tests by using mkRuntime everywhere --- api_test.go | 5 +---- buildfile_test.go | 30 ++++++------------------------ 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/api_test.go b/api_test.go index e047aba9e5..479b9e1e57 100644 --- a/api_test.go +++ b/api_test.go @@ -472,10 +472,7 @@ func TestGetContainersChanges(t *testing.T) { func TestGetContainersTop(t *testing.T) { t.Skip("Fixme. Skipping test for now. Reported error when testing using dind: 'api_test.go:527: Expected 2 processes, found 0.'") - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv := &Server{runtime: runtime} diff --git a/buildfile_test.go b/buildfile_test.go index c3881a214f..1af457158a 100644 --- a/buildfile_test.go +++ b/buildfile_test.go @@ -229,10 +229,7 @@ func TestBuild(t *testing.T) { func buildImage(context testContextTemplate, t *testing.T, srv *Server, useCache bool) *Image { if srv == nil { - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv = &Server{ @@ -370,10 +367,7 @@ func TestBuildEntrypoint(t *testing.T) { // testing #1405 - config.Cmd does not get cleaned up if // utilizing cache func TestBuildEntrypointRunCleanup(t *testing.T) { - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv := &Server{ @@ -402,10 +396,7 @@ func TestBuildEntrypointRunCleanup(t *testing.T) { } func TestBuildImageWithCache(t *testing.T) { - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv := &Server{ @@ -433,10 +424,7 @@ func TestBuildImageWithCache(t *testing.T) { } func TestBuildImageWithoutCache(t *testing.T) { - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv := &Server{ @@ -464,10 +452,7 @@ func TestBuildImageWithoutCache(t *testing.T) { } func TestForbiddenContextPath(t *testing.T) { - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv := &Server{ @@ -513,10 +498,7 @@ func TestForbiddenContextPath(t *testing.T) { } func TestBuildADDFileNotFound(t *testing.T) { - runtime, err := newTestRuntime() - if err != nil { - t.Fatal(err) - } + runtime := mkRuntime(t) defer nuke(runtime) srv := &Server{ From b629810fe08dc864674a6e64a7f1b418096bc448 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Fri, 18 Oct 2013 06:47:08 +0000 Subject: [PATCH 48/48] hack: encode the name of the current test in temporary directories, for easier tracking Conflicts: utils_test.go --- utils_test.go | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/utils_test.go b/utils_test.go index 740a5fc1bc..3f99de570b 100644 --- a/utils_test.go +++ b/utils_test.go @@ -2,22 +2,38 @@ package docker import ( "github.com/dotcloud/docker/utils" + "fmt" "io" "io/ioutil" "os" "path" "strings" "testing" + "runtime" ) // This file contains utility functions for docker's unit test suite. // It has to be named XXX_test.go, apparently, in other to access private functions // from other XXX_test.go functions. +var globalTestID string + // Create a temporary runtime suitable for unit testing. // Call t.Fatal() at the first error. func mkRuntime(f Fataler) *Runtime { - runtime, err := newTestRuntime() + // Use the caller function name as a prefix. + // This helps trace temp directories back to their test. + pc, _, _, _ := runtime.Caller(1) + callerLongName := runtime.FuncForPC(pc).Name() + parts := strings.Split(callerLongName, ".") + callerShortName := parts[len(parts) - 1] + if globalTestID == "" { + globalTestID = GenerateID()[:4] + } + prefix := fmt.Sprintf("docker-test%s-%s-", globalTestID, callerShortName) + utils.Debugf("prefix = '%s'", prefix) + + runtime, err := newTestRuntime(prefix) if err != nil { f.Fatal(err) } @@ -30,8 +46,16 @@ type Fataler interface { Fatal(args ...interface{}) } -func newTestRuntime() (*Runtime, error) { - root, err := ioutil.TempDir("", "docker-test") +func newTestRuntime(prefix string) (runtime *Runtime, err error) { + if prefix == "" { + prefix = "docker-test-" + } + utils.Debugf("prefix = %s", prefix) + utils.Debugf("newTestRuntime start") + root, err := ioutil.TempDir("", prefix) + defer func() { + utils.Debugf("newTestRuntime: %s", root) + }() if err != nil { return nil, err } @@ -42,7 +66,7 @@ func newTestRuntime() (*Runtime, error) { return nil, err } - runtime, err := NewRuntimeFromDirectory(root, false) + runtime, err = NewRuntimeFromDirectory(root, false) if err != nil { return nil, err }

66)lYOO16$fhPS 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 RJx1WSYo`_cmeIa*e+SSrEocA$ delta 113584 zcmXtf1yq&U_x8PXcejLe2}n1R(kVy@N_Xc=he)>wN{N(!bc3J>2uP!JcXxk>`Tf6H zgX3Dvh4-Gb_p_haH)sv@_a$m&wj4yHJNk@1txfG`LJ+$q2gYVt5dXo(7TT zTNW0B&UF0~S!8@-&5pMrXu0QevQFqs;U{y|N>8WXv`G#QrdbNUu$3CxZ)$j&DXi_u z_h?;W$W2n6JBbD%sJ|uRpWv0u&6LVQ_17+EmalWymRmXmA-dfNbjkjESHhK$rtvl; zk4(OhH27k0bzEDu~@M#j|4H%(mUv4*~r}B+#~;dz=|ojf(_Ne*QBwuh(bIfc57~fEGUIM zjawM)7I(kX`;B_*t-X$Z)RiQ%W(B_BYNvUM<0&M#$6)_%PPmv+wSVa| zuUHN6F*E6SRxp0aey4NO45@lMaa2ZzQkeD3%;1vyL>ZT?xHC&8SHls)WRqffxm9_Zs(vW1iEmL>ZZ2%h*=1u#ZlaI5VH@4k`Kdlb8@c+aT?rCXT2SgQMM-!#yMewJ z51TrVE9rGBtAR_Xyh-oze&|qx3_ZRFMdS;0TXNLWhCGS<-v~&six&3{=>7JE>=(XX zg69PjWKZv5#nkXuQ_cUNHNVe}>nkGbuTttlqFw5VIhLyU=xA=lE<&C=|Lt9<*8YXW zE{g20=6c&kbZ#+Dmq?a3SH-h)RX)dc`!=4=sHWMxA_%eJr1Vd~SyHUfg4!OEiK*GK zFwdTZ+4MP**P(N(8`;nfT(DKLTfI%`-K_~6COc>$)>a!h&Q53#fdi!>*Sq)E8+s9{ zXlYiaw({2ov0yv%(nl^ z7=A>5ybotc3?Yt=8a84J*4aaNAw@@|To^l?Mb@HZoAScUfV}m8r@hCe6Qp5(akK5@ z$H##=@V%G78@fVl>kQK8WgrmtSTp?)oRJ5VL=R*_Cs3Hc5)JWjFo_d*+4d>&hT#G_jlxhD=nuorK ztd}sn+47ZQ)Z$SVJQlc25?f+Gw})$*VSb9+%;e^-iGq^KEGy0H+Cr|8hl7fCFz~pJ zDX@$J!-PDKRI}rU)Fb!WhsLh|9{i)w(vUJ|?`Bk2i#!`i^c9ze1yyh`;S*SylPQ|G z)0t)Oyye>Z)Bp2epl%E4r({`<}xQc zte8TF)Da=m1mu)VHYIdX~A+FAv#}!e)pgrt(oJ+aLPO7>zI>}`4(DH=L-sW zYqJn3Ys(^|{fKyT7r2T)oc-yk^A}d`aIRf?_ulo+&03z26Lhl>`i_V?l<)bEZ2!VF zN)){u8Zq}yOL8rbNE2Y)`j0$j4)sMg`NrDFEd)~``J0t2o}1RGn}Ak+LQ#A?*dNXu z6qh5Ps3u%^x<5Rk!O1~6?a7|RsW07u$4KK=<{x;+EGiz7qGs3a6Ea*$9-6>REW#Pv!3UfiR_PPF5mAyjR^NYG;y9B3R!<=77)^L5&87u zxui3i{Qe0$PF>hI=IsCj*3y76KR6rZOSSkgEqAfx;vYmIf)-%!Pm@l7pA zp;_oYEmhNGA;MU_3&y~Ei;dNF0PFCeecRV#0wI=GgxBy8ehcA``kEbas4RA3lm4kW zki<8XMkEyHT`6PuU1r9k+$h(`A3dyZR`J zVro-N#N^{iGR4J90{{MYOVzAApX9kSyOj1bdO}}LEXwvs^W}5T3f3)wygR=N2C1EA z4iMSC)Ip;lEMZH9hr*Hd*=C@u*a7(lbmw$SErxshKAeYU9_27f$;{9LA^!-Le?{h!e0`}wQXre;g52OucJXT;C(0%#1hYZUbyzMl8O#S7ukARGuCgRI6?3&aks5|=N5S@qSB`O!^ z@LnKjZTI=M*Ug%H2xPHAZ6<~5zLij}CZ70B#xmTM$&&USdG=nFu2shoC6O$t$Vx`c z*EY0^%!~F{+doW`{KwcF`}JQ>>e2Pz<4T-9*^Ep~SEJZNPc7irg|Q>BCx*O!_Bg+u z=t+3Yf6zDUAmWvdAMz`NRE&&|v@ZY!vDFH8k^`55#uz#h(%~?B z2Z5FF%>?2ZnA;r>R`2>Jbuoz(>(84S1+Qx{KlXz)BJ$E+)m55M%9F^G)MFUn!0Z6uoi zxwp0Px4yWxOX}0rw;r2-q^=jO73U0IRupvyL>nOVX3a}opJ`+bu3&2!Ezbxw5{$g) z50>|3=YbDAGO9#wa+-UR-tB<(^cx>z1*F#WR}`^p<`ie&3)93Hh3oW5Lz&%z+h_-= zWeE2mN?%N8R-ZW^K{0EHG*Se>H8DCoSAAlGwAv@$MtLNw%Gym(N-63)SEeujP2;;+ z4Y*9Bg|jOYf9~!lbO%)TYuvxT+!E4OItuBilM1SNOhhmO&IC5JxTKs6kh4t`@?dwl zX0rJm5zm5SH_#?TgUSM%zrcE1dqb^eT9oGFL=H7JjV`Wra) z!QIG3dHRzg&kpBT>?i*WwXpk`@t!L(PW_p{tF^{`%9!LWPV|-0a4F3EGOh)=9WUxe z#=Zo?qk@J+Xa1j$lC9 zM($mAjY&RAx+{K*p6pxlUqpDd5K#g<tpp2G2Jip!WiRQM>=r=4gceO zL3R?^ZbQn}*<3W75CgVI>0EkNExke;_TP7ywg;azScv*|!7waT;$fTBB%H$+Sfmb? zuzz&A6$84!3MJDssZ^M)0jqMS_+)yf1>#?a?3C2*?dgClPT$g^^5# zuH4KDuB3`NS=fgQ>z%KegAZ*{>Ky0en+z1Bc62+QJlf);xbjf3Z~E*uIV9sX8z^Yc zwTf`DG=rMogV-f=H1e{tTtxbO_WAl~SsA_x9nA?tb+Q%HqCKrL z`j}jzf2lebF!+MMbBt`~f5ZA?1Hlq?6`Uf1b+{tO#*r}~Q^l7r&D~x21jh)&z3jeY#TX-q`_REB{csBWzb&j_E2~?{XB#|7WeQDw@OK zCMm)u`^NzzcpskbNa8#bhDVqV*j*8YJUKH;&ws~0N|c$|R~ixe(>rw28O)53 zPeyVnU|H_1)Q%`-Is`s$w*0 zEnp6ACS#aL^!32A`wOSrqhW$V%FT|zcznsTyux>O4D9!L!9!B+hdl2T1O@!HqKT5K zoaQqrTY4&UH51fK5jJXha{gj24-YUpMDf8s;I|B;$*-c<%|Z+hb!fl+71z-TD+kqG zV4)wQqtFyFJz2T?nK{WJfo_Trzi&Sf5+MkWP7hGlw_YQKJ0Me-htG}y;4Z<)rgM z-lj!(Tp)0mR%4Gl!5vms)1NArF%$FV?U}Qt^xe1#S-gE%;H}_7b@D(nSt>K*vV?u* zCCw_%t1&|LxX&0bJuxoz6QrBQNneL@v)fN?>~7*H$q_Bg{{9J>JD*CW#-R44?u|kJ zt854vD1*C0=O?7rGXG=vA3CBu zZXljYP^?_srNgk3rDt*_UE*xiFCC`mmAm~ZHRi?N5To#mQ6C&&ZXm9s$jEJ!i3(DL z8X}h@;!Dpb5ArJfZ}$ddtcPae(6ce{B%yC5q2%Qw$2o#B(@NE7!_X0Wo{P@}-yWbh zcSZr+@}(DmUmsNIb!tlsZ_;s{?}a?nc`6DW#$s3&zVs*h>M})>a1=x`L2e%SXQHov zSfc3vg}R&~SjyCN@9w3dzA>oGzM9K+yB}TjkutR-Agf(ahK@U|ih}xwV5S+^Z9u>( zNo;Ny8(C~^aDpa6Vbl^XP}YwM6_r_`#c1v8*E7=y6$Fo?!J-C$FZ@;b@DFT(0Z|zE zm*F!EMmC7{!sThVAXl((E8)+SejciMEPxY#wr$~=m}KpEm5&m^b6Hp3nHMle&V-+E z_`skmH?cnlAB273**N~M(HlMx0Tw9tl4v!EyXuKA9~N0vcU^wH7P98{nORnN=f;`^ z6OWi?xw`_>e`*9U8U;{SGB!v##M0ZODCMSP2M5sa=^tBKzmA-Oglh?3z7l&E-SbJZ z85gCM1cnHh+;a^iFq6!(>cd%Dupv4R(97ZMbY87i14OjmLZPu8Qn3_2TPR6_H8Ze@ z)`PgYAIm$0tG+8Ll(f8+y1o0uF&9pz?ZU14;4mYU?9sGote}uF=PX#^CU=1&Q?Z@Ld z7o_usw$2u127J)vwpHR~n-%ovS8Uoh&sp$rio z&YR*rc-%)q-6 zV+*XJb#R~wL9}-X-^b}G?4{hKII8)zQ`ob1#Aor#Zb<)Z!&^ySDseT;@N3h)qgwh= z`P4Ut$?RFka8|g%DvqWZ+EkE)lvIPTxN?QNLM-P0J;BkZ|DFK%PxH0(ybbJ+O^^>| z>8MoBN0hTMwS)Bd@7}jWSfn`8rKQN;LD1n5BH`4C8b*3CL3)hQXew%5#JXy+W^Ec; zgeLCS7Bv5_Ob_rL%1tcdI|-xLR&YuS*I^7X*hEP*<*TIjg-MqK|3%<`6N;!$5(W4v zDUU;v*#LjT468%_`J0Z?hi2rPSQMc;tjH@^MI~(U=d+Dk!=&$p?x^pf@L=p%1j-2t zdvCu=8j0=|E`IHnQ4^FnM0bJ5!MRMETJne&B^b_^n+q6EqI;)vhmEkJqr!jvAg1Sr zDjk}G&~30=Q-_ThyjrWzpM%CYCvW!LJu+(b^~eef3)84I++A8+%njUcJ;&+(`EyO+ zv{jSkoB}+gYR_qPM-`;nu~8fpX{tRxa0~B}S|>&`-e(S)Q_m2L;kW(unY$5iw+$qbx7S>+BI@YY%Wze^k^U8Uj)coPDQFag7gqA z0wYp8zSy0t{g%M0QbbCWK~F5A&4{w5s}XpY1Lw(jH&gcBX(p;+_so=wTs=|rsQa;NTF;$G9_*!=F!vg(Dz3&A-jmw^| zwb9^t>mfN*JDXkDt$ajx(IxNJR}YDuN3qyqA{(uMq}sg%+=tRZswR{o^z2p)E>L#?l-pe5phq^C6KY#rED$vAlw|0*5sr?2aF>&hEv{SnS z#S_b4Dz9I^&Vem#ZyVi=>zg`|N%(uW@!ZXN&F{9@j+X@L>gukoJqJaao0}^fL&Euw zf{;*~(O%N;tgPpgbm-?7rcTFe1FeEib2F5%H$yqp=W~A0J`={Z=ibcb{h;VR*3jS} z&Vo-4eqE^!+o=k7tGn4;ix27c+)EXEdv3;R-B?1GMi z^E9SODf#i~&Gml!wF_0xTRDh6zr7tweExWJ75t3SFJGMRcdCbSrs|zcSI%~)1%(Ol zwTsjOyvIv)Lt!0VUHRXw`M=rL8Wv7&Gdot=Ik>wnu!Hn9mVIseVP=qEC)F zS;YC_AuBk+e`RH59sm9rUcMKwd*wLOu-NQ(zNb3Tb31>3YdZZ5iXpjGC>m8Fk5~){ z2#A@Toh@~Bb-fXwh+T@8yd(2o>WaNt9t~jD?{OYAJxY5jvG%5~!9-F8 zkR%{n%r;Jam7u`Dwui6#A2D??w_3$IlV6RSQvl>J$I?nlFmZ4^cVn)|{_ufn@K|iL zP$j*4IA6iE@7FKqisItLi|gxc*g|>z+*WEv#?)JLvcRz~nvw0-d(HV6;US1Y1qF<& zqw12k-LaH{-_tma&Zd4PGK@BP?VHRMYZvwH?Cd;)U<>>Ek}9R+eW1lWm)1W*67~VR zyVLd8_czBwvfepXhPAe-b@qS1aT+(d7sC{$ z+ZtJGH+hDOfzju8)XS{i*wnNYMC#VT&^UK;Y!}{z+qgbP+OT{gYzOWA zHdoMb2F+1h^cV)CgDJ^L>-ZfH2ws3boU zB|;w`p8;@iN7hP8N-g#Eg0<3f7S;jU%A>iH2n4JhJaIi6Vf;{eR#XsUc5CZ(-ot1O z2v;jg&XI)LcJrRayaLd|Uk%P<`Lk-)*+G>>Ps?8SrB99(Jp+T&&U8JuV_ym@>qqGB z@`ZUGv^B;WPc7;xh6M{n#g(`O_fAdHjS7>Km)D~e^|Viok5`WdT{{5!U}50pb$+}A z#rI<|XnA+nxXEtvYdg{*9LCZAYPBy_;h_|;V0U-d`x0QfaGeb@r1#rRmK)WtEyqi? zoq+2$oo;Yh#>ssClN<|Wt$Ij;5(@^0!;wL2-5TN1!srqeF9hr+c6KK#=E-3fr<11F zq(nqh#^ml^UKKNK0oU^(7qB4EN$b$iN6C4r(~IqjcKWjT7nNqxk~!<-0C7NZOtVS* z!=&8ZYkY67PN#2gZ!zI!V1Q(Y1@OK39W}gtN7+iWc8+`r{=HrAW%{5!8=U~2G`cLyPwltgOIS};nrr9fg zKcBJjn{K~7n^prQ+s%V@4`w5EouGWKhBJfwJ0WZsDc4JDZ7r=O9k+tp>+|aZFel(0 z8N3#1Q+(ABV#od6dAm34k8SNYfEn_CDM!IUm!4s5Z%_VxCn!-8Cve^OVIs86(j z&OU@GkzTK+o6_&Zl8bpCyzo00a^KLXR{z}6^74^?c2*X4A-O*a*Qud0elHRUNfIy!4@{cT?=yPByico*&>+57?m<9h<%zklBetZQp)69K3@ zY|a0+q=fC5_H4G<3l;4rbO_*RO{i(F#%44L&WJhxQN*LqKR{Bly(D7qZ%Q%*mT>n9WowVF4L;y`!NFWTYa;ugiug@=c)4gHv%ZA~)IkcaY#Ir{&-%M|xJ zO9hocatlDuK|M!|JTpCg5(~x#Na6YJ^kl$%TfppO*$cNofS;me*I62S*#F&fcAbk; zqjm8bm zoyS+F+a}}?Ik}0ju&@a-GP22!A3x^e9(TvFaB`mdg9iL4;kxomU52UD=*RSQbIZ4H zTEsLoIUYwVy^>DrFFioP^C}qQP>a;usOg_01bzDS$u$Tq0n`%Y#mzj;X;jCL*)cYz zquU;M`!-wn>$4b=wdKHz#Yh3!NF2_F)a{<`ZX)PMcQ+M+^9G>7djP|Xw!!eIBlbE?%7&hYOFzP$z%Pgx%ob(tvwYHAdUM9Y!EpiwEJZWR zyUeI^{+ndr;i)8peXFiUq@d6@G-Oi(qkH!E>AxBqi#v;2tD&4X*sG zvX;cjAKA5`)r-Sr>_CW%l-tCeos+ZN>PlTn$wf&;g^zOS;f+*zA1-MF=)Pd$;@a~| zRJ2420{u40SFHVi4Q|!_W8kwHaY6E=auLakJqaCD+R003&2V)Nf_SAmr&$t=Sl&WZR;BC{B$B*AA15GzaE$q6o{QWE{ zDykRw5ZS^3SMJS{*KkA>A_WBnX1ElPy|Z};Db1MK_?rJ!%b+|?4aKK1qQX{Fdb%bf z>jFhE5r~?>A?>B=n?Op_mF8W8K)i77jufiAvgok~k2X1J3Q_x%PJRFvf&8F&U>AUN zM1Bx*`Ch%3F_0yQx--*QjS2&2xN^2PJ6$X(^B}WjBd~yIthukWk7eKxzBqU0Ae?x`|J50SkUVid$p4$&8~ct z&Pe^=$N>3+!+=yr%MtZ*>}j$9nq=MYV4;)ivtKJ4NsLdpOsDwqZ@x$v9XmU_Gf)es zO_-EeC~v^u;xXrPt#W+Uk}4}awkI+_pHI)3AeX145T�f0ctt^~6ypZ$o=UK>VSG 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