28 lines
784 B
Docker
28 lines
784 B
Docker
|
|
# 面板镜像:前端 Vite 打包 + 后端 Fastify 网关(多架构 amd64/arm64)
|
|||
|
|
|
|||
|
|
# --- 1) 构建前端 ---
|
|||
|
|
FROM node:22-slim AS web
|
|||
|
|
WORKDIR /web
|
|||
|
|
COPY web/package.json ./
|
|||
|
|
RUN npm install
|
|||
|
|
COPY web/ ./
|
|||
|
|
RUN npm run build
|
|||
|
|
|
|||
|
|
# --- 2) 后端运行时 ---
|
|||
|
|
FROM node:22-slim AS runtime
|
|||
|
|
WORKDIR /app
|
|||
|
|
ENV NODE_ENV=production
|
|||
|
|
COPY server/package.json ./
|
|||
|
|
RUN npm install
|
|||
|
|
COPY server/ ./
|
|||
|
|
COPY --from=web /web/dist ./web-dist
|
|||
|
|
|
|||
|
|
# 构建版本号:CI 用 git tag 注入(vX.Y.Z),本地构建默认 dev。烤进镜像 → 面板运行时显示真实版本并据此检测更新。
|
|||
|
|
# 放在末尾:改版本号不会破坏上面的依赖安装缓存。
|
|||
|
|
ARG WOC_VERSION=dev
|
|||
|
|
ENV WOC_VERSION=${WOC_VERSION} \
|
|||
|
|
STATIC_DIR=/app/web-dist \
|
|||
|
|
PORT=8080
|
|||
|
|
EXPOSE 8080
|
|||
|
|
CMD ["npm", "run", "start"]
|