53 строки
1.8 KiB
Docker
53 строки
1.8 KiB
Docker
FROM golang:1.19-alpine{{ .alpine }} AS build
|
|
|
|
RUN apk add --no-cache git make
|
|
|
|
ENV NOTARYPKG github.com/theupdateframework/notary
|
|
ENV TAG v{{ .version }}
|
|
|
|
ENV GOFLAGS -mod=vendor
|
|
|
|
WORKDIR /go/src/$NOTARYPKG
|
|
RUN set -eux; \
|
|
git clone -b "$TAG" --depth 1 "https://$NOTARYPKG.git" .; \
|
|
# In case the version in file doens't match the tag (like in 0.7.0)
|
|
echo "${TAG//v/}" > NOTARY_VERSION; \
|
|
# https://github.com/notaryproject/notary/pull/1635
|
|
git fetch --depth 2 origin efc35b02698644af16f6049c7b585697352451b8; \
|
|
git -c user.name=foo -c user.email=foo@example.com cherry-pick -x efc35b02698644af16f6049c7b585697352451b8; \
|
|
# https://github.com/notaryproject/notary/issues/1602 (rough cherry-pick of ca095023296d2d710ad9c6dec019397d46bf8576)
|
|
go get github.com/dvsekhvalnov/jose2go@v0.0.0-20200901110807-248326c1351b; \
|
|
go mod vendor; \
|
|
# TODO remove for the next release of Notary (which should include efc35b02698644af16f6049c7b585697352451b8 & ca095023296d2d710ad9c6dec019397d46bf8576)
|
|
# Make the version detectable by scanners
|
|
sed -i -r -E 's|(version.NotaryVersion=\$\(NOTARY_VERSION\))|\1 -X $(NOTARY_PKG)/version.Version=$(NOTARY_VERSION)|' Makefile; \
|
|
make SKIPENVCHECK=1 PREFIX=. ./bin/static/notary-server ./bin/static/notary-signer; \
|
|
cp -vL ./bin/static/notary-server ./bin/static/notary-signer /; \
|
|
/notary-server --version; \
|
|
/notary-signer --version;
|
|
|
|
FROM alpine:{{ .alpine }}
|
|
|
|
RUN adduser -D -H -g "" notary
|
|
{{ if env.variant == "server" then ( -}}
|
|
EXPOSE 4443
|
|
{{ ) else ( -}}
|
|
EXPOSE 4444
|
|
EXPOSE 7899
|
|
{{ ) end -}}
|
|
|
|
ENV INSTALLDIR /notary/{{ env.variant }}
|
|
ENV PATH=$PATH:${INSTALLDIR}
|
|
WORKDIR ${INSTALLDIR}
|
|
|
|
COPY --from=build /notary-{{ env.variant }} ./
|
|
RUN ./notary-{{ env.variant }} --version
|
|
|
|
COPY ./{{ env.variant }}-config.json .
|
|
COPY ./entrypoint.sh .
|
|
|
|
USER notary
|
|
|
|
ENTRYPOINT [ "entrypoint.sh" ]
|
|
CMD [ "notary-{{ env.variant }}", "--version" ]
|