26 lines
749 B
Docker
26 lines
749 B
Docker
FROM golang:1.27-alpine@sha256:f92b6ef800e499660581efdabdf25d9d817a9d124eaf900924f0504e7e27e12d AS build
|
|
|
|
WORKDIR /src
|
|
|
|
ENV CGO_ENABLED=0
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY cmd ./cmd
|
|
COPY internal ./internal
|
|
|
|
RUN go build -trimpath -ldflags "-s -w" -o /out/lodge-server ./cmd/lodge-server
|
|
RUN for target in darwin/arm64 darwin/amd64 linux/arm64 linux/amd64; do \
|
|
GOOS=${target%/*} GOARCH=${target#*/} go build -trimpath -ldflags "-s -w" -o /out/dl/lodge-${target%/*}-${target#*/} ./cmd/lodge || exit 1; \
|
|
done
|
|
|
|
FROM alpine:3.24@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6
|
|
|
|
WORKDIR /app
|
|
|
|
COPY --from=build /out/lodge-server /usr/local/bin/lodge-server
|
|
COPY --from=build /out/dl ./dl
|
|
|
|
CMD ["lodge-server"]
|