diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 37d55d6dbe86..b7b46b5e71c8 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -37,6 +37,7 @@ jobs: - alpine - debian engine-version: + - master # moby/moby-bin:master - rc # latest rc - 29 # latest - 28 # latest - 1 diff --git a/e2e/compose-env.yaml b/e2e/compose-env.yaml index c4f3774319ff..975b1b18eb5a 100644 --- a/e2e/compose-env.yaml +++ b/e2e/compose-env.yaml @@ -31,6 +31,7 @@ services: dockerfile: engine/Dockerfile args: ENGINE_VERSION: ${ENGINE_VERSION:-29} + ENGINE_SOURCE: ${ENGINE_SOURCE:-dind} privileged: true command: ['--insecure-registry=registry:5000', '--insecure-registry=privateregistry:5001', '--experimental'] environment: diff --git a/e2e/testdata/Dockerfile.connhelper-ssh b/e2e/testdata/Dockerfile.connhelper-ssh index 6f65ea793410..61cde646f101 100644 --- a/e2e/testdata/Dockerfile.connhelper-ssh +++ b/e2e/testdata/Dockerfile.connhelper-ssh @@ -3,8 +3,16 @@ # ENGINE_VERSION is the version of the (docker-in-docker) Docker Engine to # test against. ARG ENGINE_VERSION=29 +# ENGINE_SOURCE is "dind" or "moby-bin" (moby/moby-bin:master). +ARG ENGINE_SOURCE=dind -FROM docker:${ENGINE_VERSION}-dind +FROM docker:${ENGINE_VERSION}-dind AS engine-dind + +# moby/moby-bin only has the daemon binaries. +FROM docker:dind AS engine-moby-bin +COPY --link --from=moby/moby-bin:master / /usr/local/bin/ + +FROM engine-${ENGINE_SOURCE} # the openssh-client update is needed for security reasons when using docker:23.0-dind, currently maintained as an lts by mirantis RUN apk --no-cache add openssl openssh-client openssh-server shadow && \ diff --git a/e2e/testdata/engine/Dockerfile b/e2e/testdata/engine/Dockerfile index d688a2060694..3dea13eabc82 100644 --- a/e2e/testdata/engine/Dockerfile +++ b/e2e/testdata/engine/Dockerfile @@ -1,5 +1,14 @@ ARG ENGINE_VERSION -FROM docker:${ENGINE_VERSION}-dind +# ENGINE_SOURCE is "dind" or "moby-bin" (moby/moby-bin:master). +ARG ENGINE_SOURCE=dind + +FROM docker:${ENGINE_VERSION}-dind AS engine-dind + +# moby/moby-bin only has the daemon binaries. +FROM docker:dind AS engine-moby-bin +COPY --link --from=moby/moby-bin:master / /usr/local/bin/ + +FROM engine-${ENGINE_SOURCE} # Trust the tlsregistry CA so dockerd connects without --insecure-registry. COPY registry/certs/ca.crt /usr/local/share/ca-certificates/tlsregistry-ca.crt diff --git a/scripts/test/e2e/run b/scripts/test/e2e/run index ad6caaaa1362..6f1cc1a4c93d 100755 --- a/scripts/test/e2e/run +++ b/scripts/test/e2e/run @@ -42,6 +42,11 @@ setup() { sh e2e/testdata/registry/certs/gen-certs.sh fi + # ENGINE_VERSION=master tests against moby/moby-bin:master. + if [ "${ENGINE_VERSION:-}" = "master" ]; then + export ENGINE_SOURCE=moby-bin + fi + COMPOSE_PROJECT_NAME=$project COMPOSE_FILE=$file docker compose up --build -d >&2 # Ensure supporting services exist before running tests. If one fails to start,