moth/build/package/Containerfile

30 lines
682 B
Docker

ARG GO_VERSION=1.21-alpine
FROM docker.io/library/golang:${GO_VERSION} AS builder
COPY go.* /src/
COPY pkg /src/pkg/
COPY cmd /src/cmd/
COPY theme /target/theme/
COPY example-puzzles /target/puzzles/
COPY LICENSE.md /target/
RUN mkdir -p /target/state
WORKDIR /src/
RUN CGO_ENABLED=0 GOOS=linux go install -a -ldflags '-extldflags "-static"' ./...
# I can't use /target/bin: doing so would cause the devel server to overwrite Ubuntu's /bin
##########
FROM builder AS tester
RUN go test ./...
##########
FROM builder AS prodbuild
RUN mkdir -p /target/bin
RUN cp /go/bin/* /target/bin/
##########
FROM scratch AS moth
COPY --from=prodbuild /target /
ENTRYPOINT [ "/bin/mothd" ]