# newapi Dockerfile — production-ready example # LLM 网关服务,使用 Go 静态编译二进制 # 路径:templates/newapi/Dockerfile FROM alpine:3.19 AS runner # 安装证书和时区数据 RUN apk add --no-cache ca-certificates tzdata && \ update-ca-certificates # 创建非 root 用户 RUN addgroup -S app && adduser -S app -G app # 数据卷目录(挂载点) RUN mkdir -p /data /logs && chown app:app /data /logs WORKDIR /app # 复制二进制(通过 --build-arg 或 COPY --from=builder 传入) COPY newapi /app/newapi RUN chown app:app /app/newapi && chmod +x /app/newapi USER app ENV PYTHONUNBUFFERED=1 ENV PORT=3000 EXPOSE 3000 # 数据卷声明(持久化数据) VOLUME ["/data", "/logs"] ENTRYPOINT ["/app/newapi"] CMD ["--port", "3000", "--log-dir", "/logs"]