24 lines
733 B
Docker
24 lines
733 B
Docker
# 与 go.mod 中 go 版本一致(modernc.org/sqlite 等依赖会抬高 toolchain 要求)
|
||
FROM golang:1.25-alpine AS builder
|
||
WORKDIR /app
|
||
RUN apk add --no-cache ca-certificates
|
||
COPY go.mod go.sum ./
|
||
RUN go mod download
|
||
COPY *.go ./
|
||
ARG TARGETOS=linux
|
||
ARG TARGETARCH
|
||
RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -o /mengyaconnect-backend .
|
||
|
||
FROM alpine:3.19
|
||
WORKDIR /app
|
||
RUN apk add --no-cache ca-certificates && \
|
||
adduser -D -H appuser
|
||
COPY --from=builder /mengyaconnect-backend /app/mengyaconnect-backend
|
||
ENV DATA_DIR=/app/data
|
||
ENV PORT=8080
|
||
RUN chmod +x /app/mengyaconnect-backend && \
|
||
mkdir -p "$DATA_DIR" && chown -R appuser:appuser /app
|
||
USER appuser
|
||
EXPOSE 8080
|
||
CMD ["/app/mengyaconnect-backend"]
|