24 lines
781 B
Docker
24 lines
781 B
Docker
# 视野后端构建:多阶段编译 → 精简运行镜像(纯 Go + SQLite,无 CGO 依赖)
|
|
FROM golang:1.26 AS builder
|
|
|
|
WORKDIR /build
|
|
# 依赖层缓存:go.mod/go.sum 变更才重拉依赖
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
RUN CGO_ENABLED=0 go build -o /out/observer-server .
|
|
|
|
FROM alpine:3.20
|
|
# 时区对齐宿主(自然日授权语义依赖本地时区)
|
|
RUN apk add --no-cache tzdata && \
|
|
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
|
echo "Asia/Shanghai" > /etc/timezone
|
|
WORKDIR /app
|
|
COPY --from=builder /out/observer-server /app/observer-server
|
|
COPY config.yml /app/config.yml
|
|
# 运行时数据目录(SQLite 库),由 docker-compose 挂载持久化
|
|
RUN mkdir -p /app/data
|
|
EXPOSE 8080
|
|
ENTRYPOINT ["/app/observer-server"]
|