This commit is contained in:
hailin 2025-06-23 23:11:38 +08:00
parent 89cb341b31
commit ad108a7794
1 changed files with 21 additions and 39 deletions

View File

@ -1,54 +1,36 @@
# --- 第一阶段:构建阶段 ---
FROM node:20-bullseye-slim AS builder
ARG BLOGAI_HOST=ai.szaiai.com
ENV NODE_ENV=production
ENV BLOGAI_HOST=${BLOGAI_HOST}
WORKDIR /app
RUN npm install -g pnpm
COPY . ./
COPY apps/blogai/.env.example apps/blogai/.env
RUN sed -i "s|{{BLOGAI_HOST}}|${BLOGAI_HOST}|g" apps/blogai/.env
RUN pnpm install
# ✅ 不再执行 pnpm run build让你手动搞
# WORKDIR /app/apps/blogai
# RUN pnpm run build
# --- 第二阶段:运行阶段 ---
FROM node:20-slim AS runner
FROM node:20-bullseye-slim
ARG BLOGAI_HOST=ai.szaiai.com
ENV NODE_ENV=development
ENV PORT=3008
ENV BLOGAI_HOST=${BLOGAI_HOST}
ENV PORT=3008
# 安装常用调试工具
# 安装工具pnpm + 调试常用工具
RUN apt-get update && \
apt-get install -y supervisor curl vim bash && \
apt-get install -y curl vim bash supervisor && \
npm install -g pnpm && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# 设置 supervisor 配置目录(你要调试可以不用 supervisor
RUN mkdir -p /etc/supervisor/conf.d
WORKDIR /app
# 设置工作目录
WORKDIR /plugai
# 拷贝依赖锁文件和配置
COPY pnpm-lock.yaml ./
COPY pnpm-workspace.yaml ./
COPY package.json ./
# 拷贝 supervisor.conf 到指定路径
COPY ./supervisor.conf /etc/supervisor/conf.d/supervisor.conf
# 拷贝所有源码
COPY . ./
# 拷贝 node_modules 和源码
COPY --from=builder /app /plugai
# 拷贝并处理 .env
COPY apps/blogai/.env.example apps/blogai/.env
RUN sed -i "s|{{BLOGAI_HOST}}|${BLOGAI_HOST}|g" apps/blogai/.env
# 默认进入 blogai 子项目
WORKDIR /plugai/apps/blogai
# 安装依赖
RUN pnpm install
# 设置 shell 默认入口
# 默认进入 blogai 目录
WORKDIR /app/apps/blogai
# 默认进 bash手动调试构建
CMD ["/bin/bash"]