24 lines
712 B
Text
24 lines
712 B
Text
|
|
# Build stage
|
||
|
|
FROM golang:1.23-alpine AS build
|
||
|
|
WORKDIR /src
|
||
|
|
COPY . .
|
||
|
|
ARG VERSION=dev
|
||
|
|
ARG VCS_REF=unknown
|
||
|
|
ARG BUILD_DATE
|
||
|
|
RUN --mount=type=cache,target=/root/.cache/go-build \
|
||
|
|
--mount=type=cache,target=/go/pkg/mod \
|
||
|
|
apk add --no-cache ca-certificates && \
|
||
|
|
CGO_ENABLED=0 go build -ldflags "-s -w -X main.version=${VERSION} -X main.commit=${VCS_REF} -X main.builtAt=${BUILD_DATE}" -o /out/sojuboy ./cmd/sojuboy
|
||
|
|
|
||
|
|
# Final image
|
||
|
|
FROM gcr.io/distroless/static
|
||
|
|
WORKDIR /
|
||
|
|
COPY --from=build /out/sojuboy /sojuboy
|
||
|
|
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||
|
|
EXPOSE 8080
|
||
|
|
HEALTHCHECK --interval=30s --timeout=3s --retries=3 CMD ["/sojuboy","--health"]
|
||
|
|
ENTRYPOINT ["/sojuboy"]
|
||
|
|
|
||
|
|
|
||
|
|
|