24 lines
560 B
Docker
24 lines
560 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM golang:1.26-alpine AS build
|
|
|
|
WORKDIR /src
|
|
ARG GOPROXY=https://goproxy.cn,direct
|
|
ARG GOSUMDB=sum.golang.google.cn
|
|
ENV GOPROXY=${GOPROXY} \
|
|
GOSUMDB=${GOSUMDB}
|
|
|
|
COPY go.mod go.sum* ./
|
|
RUN --mount=type=cache,target=/go/pkg/mod go mod download
|
|
COPY . .
|
|
RUN --mount=type=cache,target=/go/pkg/mod \
|
|
--mount=type=cache,target=/root/.cache/go-build \
|
|
CGO_ENABLED=0 GOOS=linux go build -o /out/hfb-api ./cmd/api
|
|
|
|
FROM alpine:3.22
|
|
|
|
WORKDIR /app
|
|
COPY --from=build /out/hfb-api /app/hfb-api
|
|
EXPOSE 8080
|
|
CMD ["/app/hfb-api"]
|