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