FROM golang:1.16 AS builder WORKDIR /src ENV USER=app RUN adduser \ --disabled-password \ --gecos "" \ --home "/src" \ --shell "/sbin/nologin" \ --uid "10001" \ "${USER}" ADD go.mod /src ADD go.sum /src RUN go mod download ADD . /src RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -a -installsuffix cgo -ldflags '-extldflags "-static"' -o app . FROM scratch COPY --from=builder /src/app /govanity COPY --from=builder /src/vanity.yaml /vanity.yaml COPY --from=builder /etc/passwd /etc/passwd COPY --from=builder /etc/group /etc/group USER app:app ENTRYPOINT ["/govanity"]