Files
registry/Dockerfile
T

29 lines
709 B
Docker

# 生产运行镜像:仅安装生产依赖,不携带测试与开发工具
FROM node:22-alpine
WORKDIR /app
# 构建元数据(由 CI 传入;未传入时回退到运行时本地 git 信息)
ARG GIT_COMMIT=unknown
ARG BUILD_TIME=unknown
ENV GIT_COMMIT=${GIT_COMMIT}
ENV BUILD_TIME=${BUILD_TIME}
# 先复制清单以利用镜像层缓存
COPY package.json package-lock.json ./
# 仅安装生产依赖
RUN npm ci --omit=dev && npm cache clean --force
# 复制运行时源码与静态资源
COPY src ./src
COPY public ./public
# 数据目录(容器内),由外部卷挂载持久化
RUN mkdir -p /app/data/configs
ENV NODE_ENV=production
ENV PORT=3000
EXPOSE 3000
CMD ["node", "src/server.js"]