Files
observer/server/Dockerfile
T
admin a0b115d954 训练体系整合与标注单阶段化
- 标注:AI 预标注直写 labels_json(去候选确认两阶段);重叠去重(minIoU);全量标注按钮
- 训练:脚本迁移入 server/training/(Go 化 prepare_yolo/analyze_rfdetr,保留 train_server.py);tflite 产物自检并入训练流程(check_tflite)
- 数据目录/权重不进 git;.gitignore 迁移至仓库根
2026-08-26 18:22:56 +08:00

32 lines
1.2 KiB
Docker

# 视野后端构建:多阶段编译 → 精简运行镜像(纯 Go + SQLite,无 CGO 依赖)
FROM golang:1.26 AS builder
# 国内网络 proxy.golang.org 不通,默认走 goproxy.cn;构建时可用 --build-arg 覆盖
ARG GOPROXY=https://goproxy.cn,direct
ENV GOPROXY=${GOPROXY}
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
# 管理端静态产物(server_admin 构建输出),由 /admin 路径托管
COPY --from=builder /build/admin_dist /app/admin_dist
# APK 下载引导页(源码目录 h5/),由 /download-page 路径托管
COPY --from=builder /build/h5 /app/h5
# 运行时数据目录(SQLite 库),由 docker-compose 挂载持久化
RUN mkdir -p /app/data
EXPOSE 8080
ENTRYPOINT ["/app/observer-server"]