github.com/docker/import-restrictions@v0.0.0-20200820154456-7e04b6301b4d/Dockerfile (about)

     1  # syntax=docker/dockerfile:experimental
     2  
     3  #   Copyright 2020 Docker, Inc.
     4  
     5  #   Licensed under the Apache License, Version 2.0 (the "License");
     6  #   you may not use this file except in compliance with the License.
     7  #   You may obtain a copy of the License at
     8  
     9  #       http://www.apache.org/licenses/LICENSE-2.0
    10  
    11  #   Unless required by applicable law or agreed to in writing, software
    12  #   distributed under the License is distributed on an "AS IS" BASIS,
    13  #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  #   See the License for the specific language governing permissions and
    15  #   limitations under the License.
    16  
    17  ARG GO_VERSION=1.15.0-alpine
    18  ARG GOLANGCI_LINT_VERSION=v1.30.0-alpine
    19  
    20  FROM --platform=${BUILDPLATFORM} golang:${GO_VERSION} AS base
    21  RUN apk add --no-cache make
    22  WORKDIR /import-restrictions
    23  ENV GO111MODULE=on
    24  COPY go.* .
    25  RUN go mod download
    26  
    27  FROM base AS make-build
    28  ARG TARGETOS
    29  ARG TARGETARCH
    30  ENV CGO_ENABLED=0
    31  RUN --mount=target=. \
    32      --mount=type=cache,target=/root/.cache/go-build \
    33      GOOS=${TARGETOS} \
    34      GOARCH=${TARGETARCH} \
    35      make -f builder.Makefile build
    36  
    37  FROM scratch AS build
    38  COPY --from=make-build /out/* .
    39  
    40  FROM base as e2e
    41  COPY --from=make-build /out/* /usr/local/bin/
    42  RUN --mount=target=. \
    43      make -f builder.Makefile e2e