forked from TrueCloudLab/distribution
1d33874951
Go 1.13 and up enforce import paths to be versioned if a project contains a go.mod and has released v2 or up. The current v2.x branches (and releases) do not yet have a go.mod, and therefore are still allowed to be imported with a non-versioned import path (go modules add a `+incompatible` annotation in that case). However, now that this project has a `go.mod` file, incompatible import paths will not be accepted by go modules, and attempting to use code from this repository will fail. This patch uses `v3` for the import-paths (not `v2`), because changing import paths itself is a breaking change, which means that the next release should increment the "major" version to comply with SemVer (as go modules dictate). Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
31 lines
795 B
Docker
31 lines
795 B
Docker
ARG GO_VERSION=1.13.8
|
|
|
|
FROM golang:${GO_VERSION}-alpine3.11 AS build
|
|
|
|
ENV DISTRIBUTION_DIR /go/src/github.com/distribution/distribution
|
|
ENV BUILDTAGS include_oss include_gcs
|
|
|
|
ARG GOOS=linux
|
|
ARG GOARCH=amd64
|
|
ARG GOARM=6
|
|
ARG VERSION
|
|
ARG REVISION
|
|
|
|
RUN set -ex \
|
|
&& apk add --no-cache make git file
|
|
|
|
WORKDIR $DISTRIBUTION_DIR
|
|
COPY . $DISTRIBUTION_DIR
|
|
RUN CGO_ENABLED=0 make PREFIX=/go clean binaries && file ./bin/registry | grep "statically linked"
|
|
|
|
FROM alpine:3.11
|
|
|
|
RUN set -ex \
|
|
&& apk add --no-cache ca-certificates
|
|
|
|
COPY cmd/registry/config-dev.yml /etc/docker/registry/config.yml
|
|
COPY --from=build /go/src/github.com/distribution/distribution/bin/registry /bin/registry
|
|
VOLUME ["/var/lib/registry"]
|
|
EXPOSE 5000
|
|
ENTRYPOINT ["registry"]
|
|
CMD ["serve", "/etc/docker/registry/config.yml"]
|