github.com/rumpl/bof@v23.0.0-rc.2+incompatible/Dockerfile.e2e (about)

     1  ARG GO_VERSION=1.19.5
     2  
     3  FROM golang:${GO_VERSION}-alpine AS base
     4  ENV GO111MODULE=off
     5  RUN apk --no-cache add \
     6      bash \
     7      build-base \
     8      curl \
     9      lvm2-dev \
    10      jq
    11  
    12  RUN mkdir -p /build/
    13  RUN mkdir -p /go/src/github.com/docker/docker/
    14  WORKDIR /go/src/github.com/docker/docker/
    15  
    16  FROM base AS frozen-images
    17  # Get useful and necessary Hub images so we can "docker load" locally instead of pulling
    18  COPY contrib/download-frozen-image-v2.sh /
    19  RUN /download-frozen-image-v2.sh /build \
    20          busybox:latest@sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209 \
    21          busybox:latest@sha256:95cf004f559831017cdf4628aaf1bb30133677be8702a8c5f2994629f637a209 \
    22          debian:bullseye-slim@sha256:dacf278785a4daa9de07596ec739dbc07131e189942772210709c5c0777e8437 \
    23          hello-world:latest@sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9 \
    24          arm32v7/hello-world:latest@sha256:50b8560ad574c779908da71f7ce370c0a2471c098d44d1c8f6b513c5a55eeeb1
    25  # See also frozenImages in "testutil/environment/protect.go" (which needs to be updated when adding images to this list)
    26  
    27  FROM base AS dockercli
    28  COPY hack/dockerfile/install/install.sh ./install.sh
    29  COPY hack/dockerfile/install/dockercli.installer ./
    30  RUN PREFIX=/build ./install.sh dockercli
    31  
    32  # TestDockerCLIBuildSuite dependency
    33  FROM base AS contrib
    34  COPY contrib/syscall-test           /build/syscall-test
    35  COPY contrib/httpserver/Dockerfile  /build/httpserver/Dockerfile
    36  COPY contrib/httpserver             contrib/httpserver
    37  RUN CGO_ENABLED=0 go build -buildmode=pie -o /build/httpserver/httpserver github.com/docker/docker/contrib/httpserver
    38  
    39  # Build the integration tests and copy the resulting binaries to /build/tests
    40  FROM base AS builder
    41  
    42  # Set tag and add sources
    43  COPY . .
    44  # Copy test sources tests that use assert can print errors
    45  RUN mkdir -p /build${PWD} && find integration integration-cli -name \*_test.go -exec cp --parents '{}' /build${PWD} \;
    46  # Build and install test binaries
    47  ARG DOCKER_GITCOMMIT=undefined
    48  RUN hack/make.sh build-integration-test-binary
    49  RUN mkdir -p /build/tests && find . -name test.main -exec cp --parents '{}' /build/tests \;
    50  
    51  ## Generate testing image
    52  FROM alpine:3.10 as runner
    53  
    54  ENV DOCKER_REMOTE_DAEMON=1
    55  ENV DOCKER_INTEGRATION_DAEMON_DEST=/
    56  ENTRYPOINT ["/scripts/run.sh"]
    57  
    58  # Add an unprivileged user to be used for tests which need it
    59  RUN addgroup docker && adduser -D -G docker unprivilegeduser -s /bin/ash
    60  
    61  # GNU tar is used for generating the emptyfs image
    62  RUN apk --no-cache add \
    63      bash \
    64      ca-certificates \
    65      g++ \
    66      git \
    67      inetutils-ping \
    68      iptables \
    69      libcap2-bin \
    70      pigz \
    71      tar \
    72      xz
    73  
    74  COPY hack/test/e2e-run.sh       /scripts/run.sh
    75  COPY hack/make/.ensure-emptyfs  /scripts/ensure-emptyfs.sh
    76  
    77  COPY integration/testdata       /tests/integration/testdata
    78  COPY integration/build/testdata /tests/integration/build/testdata
    79  COPY integration-cli/fixtures   /tests/integration-cli/fixtures
    80  
    81  COPY --from=frozen-images /build/ /docker-frozen-images
    82  COPY --from=dockercli     /build/ /usr/bin/
    83  COPY --from=contrib       /build/ /tests/contrib/
    84  COPY --from=builder       /build/ /