06488f0237
功能: - Go后端 (Gin + GORM + PostgreSQL) - UniApp用户端 (iOS/Android/小程序) - DaisyUI5后台管理 - JWT认证 + 微信登录 - 盲选加权算法 - 会员系统 + 优惠券 - 打分评价 + 偏好学习
33 lines
762 B
Docker
33 lines
762 B
Docker
# ===== Build Stage =====
|
|
FROM golang:1.22-alpine AS builder
|
|
|
|
RUN apk --no-cache add git ca-certificates
|
|
|
|
WORKDIR /app
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o /app/server ./cmd/server/
|
|
|
|
# ===== Runtime Stage =====
|
|
FROM alpine:3.19
|
|
|
|
RUN apk --no-cache add ca-certificates tzdata
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /app/server .
|
|
COPY --from=builder /app/config.yaml .
|
|
|
|
# Create non-root user
|
|
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
|
|
RUN chown -R appuser:appgroup /app
|
|
USER appuser
|
|
|
|
EXPOSE 8080
|
|
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=10s --retries=3 \
|
|
CMD wget -qO- http://localhost:8080/api/v1/admin/dashboard || exit 1
|
|
|
|
ENTRYPOINT ["./server"]
|