Simplify Dockerfile setup

The Dockerfile has been streamlined to remove unnecessary steps and over-complications. Previously the setup involved building in a separate stage and copying files over, which has now been simplified to just copying the necessary executable to the scratch container and specifying the entry point.
This commit is contained in:
Winni Neessen 2024-03-14 00:03:04 +01:00
parent f871dfb82b
commit 0ec81e16cc
Signed by: wneessen
GPG key ID: 5F3AF39B820C119D

View file

@ -1,23 +1,3 @@
## Build first
FROM golang:latest AS builder
RUN mkdir /builddir
ADD . /builddir/
WORKDIR /builddir
RUN go mod tidy
RUN go mod download
RUN go mod verify
RUN CGO_ENABLED=0 go build -a -installsuffix cgo -ldflags '-w -s -extldflags "-static"' -o apg-go \
src.neessen.cloud/wneessen/apg-go/cmd/apg
## Create scratch image
FROM scratch FROM scratch
LABEL maintainer="wn@neessen.dev" ENTRYPOINT ["/apg"]
COPY ["docker-files/passwd", "/etc/passwd"] COPY apg /
COPY ["docker-files/group", "/etc/group"]
COPY --from=builder ["/etc/ssl/certs/ca-certificates.crt", "/etc/ssl/cert.pem"]
COPY --chown=apg-go ["LICENSE", "/apg-go/LICENSE"]
COPY --chown=apg-go ["README.md", "/apg-go/README.md"]
COPY --from=builder --chown=apg-go ["/builddir/apg-go", "/apg-go/apg-go"]
WORKDIR /apg-go
USER apg-go
ENTRYPOINT ["/apg-go/apg-go"]