From d81d63c977a7909528468dca8fcd7ddf6bbc8725 Mon Sep 17 00:00:00 2001 From: Dennis Chen Date: Tue, 12 Dec 2017 05:47:17 +0000 Subject: [PATCH 1/3] Legacy images replacement with multi-arch ones on AArch64 Replace those legacy docker images prefixed by 'aarch64/' and 'arm64v8/' with official multi-arch ones. Signed-off-by: Dennis Chen Upstream-commit: 7fc697eb0b62557b4abaa3b9fc0cd44b5c1652ac Component: engine --- components/engine/Dockerfile.aarch64 | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/components/engine/Dockerfile.aarch64 b/components/engine/Dockerfile.aarch64 index 58ca40d878..fde0c706fb 100644 --- a/components/engine/Dockerfile.aarch64 +++ b/components/engine/Dockerfile.aarch64 @@ -15,7 +15,7 @@ # the case. Therefore, you don't have to disable it anymore. # -FROM arm64v8/debian:stretch +FROM debian:stretch # allow replacing httpredir or deb mirror ARG APT_MIRROR=deb.debian.org @@ -142,10 +142,10 @@ RUN ln -sv $PWD/contrib/completion/bash/docker /etc/bash_completion.d/docker # Get useful and necessary Hub images so we can "docker load" locally instead of pulling COPY contrib/download-frozen-image-v2.sh /go/src/github.com/docker/docker/contrib/ RUN ./contrib/download-frozen-image-v2.sh /docker-frozen-images \ - aarch64/buildpack-deps:jessie@sha256:107f4a96837ed89c493fc205cd28508ed0b6b680b4bf3e514e9f0fa0f6667b77 \ - aarch64/busybox:latest@sha256:5a06b8b2fdf22dd1f4085c6c3efd23ee99af01b2d668d286bc4be6d8baa10efb \ - aarch64/debian:jessie@sha256:e6f90b568631705bd5cb27490977378ba762792b38d47c91c4da7a539f63079a \ - aarch64/hello-world:latest@sha256:bd1722550b97668b23ede297abf824d4855f4d9f600dab7b4db1a963dae7ec9e + buildpack-deps:jessie@sha256:dd86dced7c9cd2a724e779730f0a53f93b7ef42228d4344b25ce9a42a1486251 \ + busybox:latest@sha256:bbc3a03235220b170ba48a157dd097dd1379299370e1ed99ce976df0355d24f0 \ + debian:jessie@sha256:287a20c5f73087ab406e6b364833e3fb7b3ae63ca0eb3486555dc27ed32c6e60 \ + hello-world:latest@sha256:be0cd392e45be79ffeffa6b05338b98ebb16c87b255f48e297ec7f98e123905c # See also ensureFrozenImagesLinux() in "integration-cli/fixtures_linux_daemon_test.go" (which needs to be updated when adding images to this list) # Install tomlv, vndr, runc, containerd, tini, docker-proxy From 6959a6fac2b6eab96d610d89cc988226c8a69b16 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 11 Dec 2017 16:00:43 -0800 Subject: [PATCH 2/3] Use commit-sha instead of tag for containerd The `docker info` command compares the installed version of containerd using a Git-sha. We currently use a tag for this, but that tag is not returned by the version-API of containerd, resulting in the `docker info` output to show: containerd version: 89623f28b87a6004d4b785663257362d1658a729 (expected: v1.0.0) This patch changes the `v1.0.0` tag to the commit that corresponds with the tag, so that the `docker info` output does not show the `expected:` string. This should be considered a temporary workaround; the check for the exact version of containerd that's installed was needed when we still used the 0.2.x branch, because it did not have stable releases yet. With containerd reaching 1.0, and using SemVer, we can likely do a comparison for "Major" version, or make this a "packaging" issue, and remove the check entirely (we can still _print_ the version that's installed if we think it's usefule). Signed-off-by: Sebastiaan van Stijn Upstream-commit: 2c8018f4bd7f48bf8f35770dea68f81b9591bb58 Component: engine --- .../engine/hack/dockerfile/binaries-commits | 2 +- .../integration-cli/docker_api_info_test.go | 22 ------------ .../integration/system/info_linux_test.go | 34 +++++++++++++++++++ components/engine/vendor.conf | 2 +- 4 files changed, 36 insertions(+), 24 deletions(-) create mode 100644 components/engine/integration/system/info_linux_test.go diff --git a/components/engine/hack/dockerfile/binaries-commits b/components/engine/hack/dockerfile/binaries-commits index abe8bfe587..3b520828e3 100644 --- a/components/engine/hack/dockerfile/binaries-commits +++ b/components/engine/hack/dockerfile/binaries-commits @@ -4,7 +4,7 @@ TOMLV_COMMIT=9baf8a8a9f2ed20a8e54160840c492f937eeaf9a # When updating RUNC_COMMIT, also update runc in vendor.conf accordingly RUNC_COMMIT=b2567b37d7b75eb4cf325b77297b140ea686ce8f -CONTAINERD_COMMIT=v1.0.0 +CONTAINERD_COMMIT=89623f28b87a6004d4b785663257362d1658a729 # v1.0.0 TINI_COMMIT=949e6facb77383876aeff8a6944dde66b3089574 LIBNETWORK_COMMIT=7b2b1feb1de4817d522cc372af149ff48d25028e VNDR_COMMIT=a6e196d8b4b0cbbdc29aebdb20c59ac6926bb384 diff --git a/components/engine/integration-cli/docker_api_info_test.go b/components/engine/integration-cli/docker_api_info_test.go index 60ca4b928f..e7d77f0985 100644 --- a/components/engine/integration-cli/docker_api_info_test.go +++ b/components/engine/integration-cli/docker_api_info_test.go @@ -1,13 +1,10 @@ package main import ( - "encoding/json" "net/http" "fmt" - "github.com/docker/docker/api/types" - "github.com/docker/docker/client" "github.com/docker/docker/integration-cli/checker" "github.com/docker/docker/integration-cli/request" @@ -48,25 +45,6 @@ func (s *DockerSuite) TestInfoAPI(c *check.C) { } } -// TestInfoAPIRuncCommit tests that dockerd is able to obtain RunC version -// information, and that the version matches the expected version -func (s *DockerSuite) TestInfoAPIRuncCommit(c *check.C) { - testRequires(c, DaemonIsLinux) // Windows does not have RunC version information - - res, body, err := request.Get("/v1.30/info") - c.Assert(res.StatusCode, checker.Equals, http.StatusOK) - c.Assert(err, checker.IsNil) - - b, err := request.ReadBody(body) - c.Assert(err, checker.IsNil) - - var i types.Info - - c.Assert(json.Unmarshal(b, &i), checker.IsNil) - c.Assert(i.RuncCommit.ID, checker.Not(checker.Equals), "N/A") - c.Assert(i.RuncCommit.ID, checker.Equals, i.RuncCommit.Expected) -} - func (s *DockerSuite) TestInfoAPIVersioned(c *check.C) { testRequires(c, DaemonIsLinux) // Windows only supports 1.25 or later diff --git a/components/engine/integration/system/info_linux_test.go b/components/engine/integration/system/info_linux_test.go new file mode 100644 index 0000000000..bea14eaddd --- /dev/null +++ b/components/engine/integration/system/info_linux_test.go @@ -0,0 +1,34 @@ +// +build !windows + +package system + +import ( + "testing" + + "github.com/docker/docker/integration/util/request" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "golang.org/x/net/context" +) + +func TestInfo_BinaryCommits(t *testing.T) { + client := request.NewAPIClient(t) + + info, err := client.Info(context.Background()) + require.NoError(t, err) + + assert.NotNil(t, info.ContainerdCommit) + assert.NotEqual(t, "N/A", info.ContainerdCommit.ID) + assert.Equal(t, testEnv.DaemonInfo.ContainerdCommit.Expected, info.ContainerdCommit.Expected) + assert.Equal(t, info.ContainerdCommit.Expected, info.ContainerdCommit.ID) + + assert.NotNil(t, info.InitCommit) + assert.NotEqual(t, "N/A", info.InitCommit.ID) + assert.Equal(t, testEnv.DaemonInfo.InitCommit.Expected, info.InitCommit.Expected) + assert.Equal(t, info.InitCommit.Expected, info.InitCommit.ID) + + assert.NotNil(t, info.RuncCommit) + assert.NotEqual(t, "N/A", info.RuncCommit.ID) + assert.Equal(t, testEnv.DaemonInfo.RuncCommit.Expected, info.RuncCommit.Expected) + assert.Equal(t, info.RuncCommit.Expected, info.RuncCommit.ID) +} diff --git a/components/engine/vendor.conf b/components/engine/vendor.conf index 87f7930262..93a503896f 100644 --- a/components/engine/vendor.conf +++ b/components/engine/vendor.conf @@ -103,7 +103,7 @@ github.com/googleapis/gax-go da06d194a00e19ce00d9011a13931c3f6f6887c7 google.golang.org/genproto d80a6e20e776b0b17a324d0ba1ab50a39c8e8944 # containerd -github.com/containerd/containerd v1.0.0 +github.com/containerd/containerd 89623f28b87a6004d4b785663257362d1658a729 # v1.0.0 github.com/containerd/fifo fbfb6a11ec671efbe94ad1c12c2e98773f19e1e6 github.com/containerd/continuity 35d55c5e8dd23b32037d56cf97174aff3efdfa83 github.com/containerd/cgroups 29da22c6171a4316169f9205ab6c49f59b5b852f From 75b526540d4a29d9f8a76741ec1428bf903647c0 Mon Sep 17 00:00:00 2001 From: Brett Randall Date: Sat, 2 Dec 2017 17:42:59 +1100 Subject: [PATCH 3/3] Updated developer doc to explain included static cli and move of cli moby->docker-ce. Signed-off-by: Brett Randall Upstream-commit: b7109162ea5b1ce493144e5ba3116a20fc2fe068 Component: engine --- .../docs/contributing/set-up-dev-env.md | 58 ++++++++++++++++++- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/components/engine/docs/contributing/set-up-dev-env.md b/components/engine/docs/contributing/set-up-dev-env.md index c2c8389a28..b4cacf529e 100644 --- a/components/engine/docs/contributing/set-up-dev-env.md +++ b/components/engine/docs/contributing/set-up-dev-env.md @@ -186,13 +186,65 @@ can take over 15 minutes to complete. hack/make.sh binary install-binary run ``` -9. Inside your container, check your Docker version. +9. Inside your container, check your Docker versions: ```none - root@5f8630b873fe:/go/src/github.com/docker/docker# docker --version - Docker version 1.12.0-dev, build 6e728fb + # docker version + Client: + Version: 17.06.0-ce + API version: 1.30 + Go version: go1.8.3 + Git commit: 02c1d87 + Built: Fri Jun 23 21:15:15 2017 + OS/Arch: linux/amd64 + + Server: + Version: dev + API version: 1.35 (minimum version 1.12) + Go version: go1.9.2 + Git commit: 4aa6362da + Built: Sat Dec 2 05:22:42 2017 + OS/Arch: linux/amd64 + Experimental: false ``` + Notice the split versions between client and server, which might be + unexpected. In more recent times the Docker CLI component (which provides the + `docker` command) has split out from the Moby project and is now maintained in: + + * [docker/cli](https://github.com/docker/cli) - The Docker CLI source-code; + * [docker/docker-ce](https://github.com/docker/docker-ce) - The Docker CE + edition project, which assembles engine, CLI and other components. + + The Moby project now defaults to a [fixed + version](https://github.com/docker/docker-ce/commits/v17.06.0-ce) of the + `docker` CLI for integration tests. + + You may have noticed the following message when starting the container with the `shell` command: + + ```none + Makefile:123: The docker client CLI has moved to github.com/docker/cli. For a dev-test cycle involving the CLI, run: + DOCKER_CLI_PATH=/host/path/to/cli/binary make shell + then change the cli and compile into a binary at the same location. + ``` + + By setting `DOCKER_CLI_PATH` you can supply a newer `docker` CLI to the + server development container for testing and for `integration-cli` + test-execution: + + ```none + make DOCKER_CLI_PATH=/home/ubuntu/git/docker-ce/components/packaging/static/build/linux/docker/docker BIND_DIR=. shell + ... + # which docker + /usr/local/cli/docker + # docker --version + Docker version 17.09.0-dev, build + ``` + + This Docker CLI should be built from the [docker-ce + project](https://github.com/docker/docker-ce) and needs to be a Linux + binary. + Inside the container you are running a development version. This is the version on the current branch. It reflects the value of the `VERSION` file at the root of your `docker-fork` repository.