Compare commits

...

10 Commits

Author SHA1 Message Date
dd360c7c0d Merge pull request #2558 from tiborvass/19.03-expenv-panic
[19.03] Fix bug with panic when DOCKER_CLI_EXPERIMENTAL environment variable is incorrect
2020-05-28 13:41:25 -07:00
92b54c256a Merge pull request #2560 from tiborvass/19.03-sshfix
[19.03] ssh: avoid setting flags through hostname
2020-05-28 13:34:20 -07:00
2ee7981985 ssh: avoid setting flags through hostname
Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
(cherry picked from commit d30970e3b1)
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-05-28 20:18:03 +00:00
e90b6bcb62 Fix bug with panic when DOCKER_CLI_EXPERIMENTAL environment variable is incorrect
Signed-off-by: Daniil Nikolenko <qoo2p5@gmail.com>
(cherry picked from commit cb010db830)
Signed-off-by: Tibor Vass <tibor@docker.com>
2020-05-28 19:21:44 +00:00
fd7874f16d Merge pull request #2532 from thaJeztah/19.03_backport_bump_golang_1.13.11
[19.03 backport] Bump Golang 1.13.11
2020-05-20 10:43:45 -07:00
a945f0e7e0 Merge pull request #2538 from silvin-lubecki/fix-version-old-engine-19-03
[19.03 backport] Fix version old engine 19 03
2020-05-20 10:35:44 -07:00
0f59532a1a Run e2e tests with different engine version on Jenkins
Rewrite Jenkinsfile to new declarative syntax without parallel as the e2e framework is not tailored for than (container name clash, port clash,...)

Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>

(cherry picked from commit 74919d0569)
2020-05-20 19:02:21 +02:00
95df3499bb Add a new Makefile variable to override DockerInDocker engine version we use to run e2e tests
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
(cherry picked from commit 15d6565e49)
2020-05-20 18:58:28 +02:00
2d1476c6f0 Partially revert cf663b526a as it breaks the version negotiation with an older docker engine.
Signed-off-by: Silvin Lubecki <silvin.lubecki@docker.com>
(cherry picked from commit 54f766d240)
2020-05-20 18:57:39 +02:00
936e9717ea Bump Golang 1.13.11
full diff: https://github.com/golang/go/compare/go1.13.10...go1.13.11

go1.13.11 (released 2020/05/14) includes fixes to the compiler. See the Go 1.13.11
milestone on the issue tracker for details:

https://github.com/golang/go/issues?q=milestone%3AGo1.13.11+label%3ACherryPickApproved

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
(cherry picked from commit 1ecca982ed)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2020-05-18 16:00:26 +02:00
12 changed files with 79 additions and 37 deletions

56
Jenkinsfile vendored
View File

@ -1,13 +1,47 @@
wrappedNode(label: 'linux && x86_64', cleanWorkspace: true) {
timeout(time: 60, unit: 'MINUTES') {
stage "Git Checkout"
checkout scm
pipeline {
agent {
label "linux && x86_64"
}
stage "Run end-to-end test suite"
sh "docker version"
sh "docker info"
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e"
}
options {
timeout(time: 60, unit: 'MINUTES')
}
stages {
stage("Docker info") {
steps {
sh "docker version"
sh "docker info"
}
}
stage("e2e (non-experimental) - stable engine") {
steps {
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental"
}
}
stage("e2e (non-experimental) - 18.09 engine") {
steps {
sh "E2E_ENGINE_VERSION=18.09-dind \
E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-non-experimental"
}
}
stage("e2e (experimental)") {
steps {
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-experimental"
}
}
stage("e2e (ssh connhelper)") {
steps {
sh "E2E_UNIQUE_ID=clie2e${BUILD_NUMBER} \
IMAGE_TAG=clie2e${BUILD_NUMBER} \
DOCKER_BUILDKIT=1 make -f docker.Makefile test-e2e-connhelper-ssh"
}
}
}
}

View File

@ -4,7 +4,7 @@ clone_folder: c:\gopath\src\github.com\docker\cli
environment:
GOPATH: c:\gopath
GOVERSION: 1.13.10
GOVERSION: 1.13.11
DEPVERSION: v0.4.1
install:

View File

@ -9,7 +9,6 @@ import (
"runtime"
"strconv"
"strings"
"sync"
"time"
"github.com/docker/cli/cli/config"
@ -140,19 +139,18 @@ func (cli *DockerCli) loadConfigFile() {
cli.configFile = cliconfig.LoadDefaultConfigFile(cli.err)
}
var fetchServerInfo sync.Once
// ServerInfo returns the server version details for the host this client is
// connected to
func (cli *DockerCli) ServerInfo() ServerInfo {
fetchServerInfo.Do(cli.initializeFromClient)
return cli.serverInfo
}
// ClientInfo returns the client details for the cli
func (cli *DockerCli) ClientInfo() ClientInfo {
if cli.clientInfo == nil {
_ = cli.loadClientInfo()
if err := cli.loadClientInfo(); err != nil {
panic(err)
}
}
return *cli.clientInfo
}
@ -280,6 +278,12 @@ func (cli *DockerCli) Initialize(opts *cliflags.ClientOptions, ops ...Initialize
return err
}
}
cli.initializeFromClient()
if err := cli.loadClientInfo(); err != nil {
return err
}
return nil
}

View File

@ -34,7 +34,7 @@ func GetConnectionHelper(daemonURL string) (*ConnectionHelper, error) {
}
return &ConnectionHelper{
Dialer: func(ctx context.Context, network, addr string) (net.Conn, error) {
return commandconn.New(ctx, "ssh", append(sp.Args(), []string{"--", "docker", "system", "dial-stdio"}...)...)
return commandconn.New(ctx, "ssh", sp.Args("docker", "system", "dial-stdio")...)
},
Host: "http://docker",
}, nil

View File

@ -49,8 +49,8 @@ type Spec struct {
Port string
}
// Args returns args except "ssh" itself and "-- ..."
func (sp *Spec) Args() []string {
// Args returns args except "ssh" itself combined with optional additional command args
func (sp *Spec) Args(add ...string) []string {
var args []string
if sp.User != "" {
args = append(args, "-l", sp.User)
@ -58,6 +58,7 @@ func (sp *Spec) Args() []string {
if sp.Port != "" {
args = append(args, "-p", sp.Port)
}
args = append(args, sp.Host)
args = append(args, "--", sp.Host)
args = append(args, add...)
return args
}

View File

@ -16,7 +16,7 @@ func TestParseURL(t *testing.T) {
{
url: "ssh://foo",
expectedArgs: []string{
"foo",
"--", "foo",
},
},
{
@ -24,7 +24,7 @@ func TestParseURL(t *testing.T) {
expectedArgs: []string{
"-l", "me",
"-p", "10022",
"foo",
"--", "foo",
},
},
{
@ -53,12 +53,14 @@ func TestParseURL(t *testing.T) {
},
}
for _, tc := range testCases {
sp, err := ParseURL(tc.url)
if tc.expectedError == "" {
assert.NilError(t, err)
assert.Check(t, is.DeepEqual(tc.expectedArgs, sp.Args()))
} else {
assert.ErrorContains(t, err, tc.expectedError)
}
t.Run(tc.url, func(t *testing.T) {
sp, err := ParseURL(tc.url)
if tc.expectedError == "" {
assert.NilError(t, err)
assert.Check(t, is.DeepEqual(tc.expectedArgs, sp.Args()))
} else {
assert.ErrorContains(t, err, tc.expectedError)
}
})
}
}

View File

@ -16,12 +16,13 @@ LINTER_IMAGE_NAME = docker-cli-lint$(IMAGE_TAG)
CROSS_IMAGE_NAME = docker-cli-cross$(IMAGE_TAG)
VALIDATE_IMAGE_NAME = docker-cli-shell-validate$(IMAGE_TAG)
E2E_IMAGE_NAME = docker-cli-e2e$(IMAGE_TAG)
E2E_ENGINE_VERSION ?=
CACHE_VOLUME_NAME := docker-cli-dev-cache
ifeq ($(DOCKER_CLI_GO_BUILD_CACHE),y)
DOCKER_CLI_MOUNTS += -v "$(CACHE_VOLUME_NAME):/root/.cache/go-build"
endif
VERSION = $(shell cat VERSION)
ENVVARS = -e VERSION=$(VERSION) -e GITCOMMIT -e PLATFORM -e TESTFLAGS -e TESTDIRS -e GOOS -e GOARCH -e GOARM
ENVVARS = -e VERSION=$(VERSION) -e GITCOMMIT -e PLATFORM -e TESTFLAGS -e TESTDIRS -e GOOS -e GOARCH -e GOARM -e TEST_ENGINE_VERSION=$(E2E_ENGINE_VERSION)
# build docker image (dockerfiles/Dockerfile.build)
.PHONY: build_docker_image
@ -145,7 +146,7 @@ test-e2e-experimental: build_e2e_image # run experimental e2e tests
.PHONY: test-e2e-non-experimental
test-e2e-non-experimental: build_e2e_image # run non-experimental e2e tests
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock $(ENVVARS) $(E2E_IMAGE_NAME)
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock $(ENVVARS) -e TEST_ENGINE_VERSION=$(E2E_ENGINE_VERSION) $(E2E_IMAGE_NAME)
.PHONY: test-e2e-connhelper-ssh
test-e2e-connhelper-ssh: build_e2e_image # run experimental SSH-connection helper e2e tests

View File

@ -1,4 +1,4 @@
ARG GO_VERSION=1.13.10
ARG GO_VERSION=1.13.11
FROM golang:${GO_VERSION}-alpine

View File

@ -1,4 +1,4 @@
ARG GO_VERSION=1.13.10
ARG GO_VERSION=1.13.11
FROM dockercore/golang-cross:${GO_VERSION}
ENV DISABLE_WARN_OUTSIDE_CONTAINER=1

View File

@ -1,4 +1,4 @@
ARG GO_VERSION=1.13.10
ARG GO_VERSION=1.13.11
FROM golang:${GO_VERSION}-alpine

View File

@ -1,4 +1,4 @@
ARG GO_VERSION=1.13.10
ARG GO_VERSION=1.13.11
# Use Debian based image as docker-compose requires glibc.
FROM golang:${GO_VERSION}-buster

View File

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1.1.3-experimental
ARG GO_VERSION=1.13.10
ARG GO_VERSION=1.13.11
ARG GOLANGCI_LINTER_SHA="v1.21.0"
FROM golang:${GO_VERSION}-alpine AS build