15 lines
549 B
Docker
15 lines
549 B
Docker
FROM docker.io/library/golang:1.25.14-bookworm@sha256:c268a04d59aea0b180ed9946a658cfab9e7b3391dc90eed6e4969ccff98c851f AS build
|
|
ENV GOTOOLCHAIN=local CGO_ENABLED=0
|
|
WORKDIR /src
|
|
COPY src/go.* ./
|
|
RUN --mount=type=cache,target=/go/pkg/mod go mod download
|
|
COPY src/ ./
|
|
RUN --mount=type=cache,target=/root/.cache/go-build --mount=type=cache,target=/go/pkg/mod \
|
|
test -z "$(gofmt -l .)" \
|
|
&& go test ./... \
|
|
&& go vet ./... \
|
|
&& go build -trimpath -ldflags='-s -w' -o /out/demo .
|
|
|
|
FROM scratch AS artifact
|
|
COPY --from=build /out/demo /app
|