xiaoai/php_pc/Dockerfile

50 lines
1.1 KiB
Docker

# ────────────────────
# 第一步:构建阶段
# ────────────────────
FROM node:20 AS builder
WORKDIR /app
# 安装依赖
COPY package*.json yarn.lock ./
COPY .env .
RUN yarn install --frozen-lockfile
# 拷贝源码并构建
COPY . .
COPY . src/
RUN yarn build
# ────────────────────
# 第二步:运行阶段(调试用)
# ────────────────────
FROM node:20-slim AS runtime
WORKDIR /app
# 拷贝构建产物和依赖
COPY --from=builder /app/.output .output
COPY --from=builder /app/node_modules ./node_modules
# 拷贝源代码以便调试
COPY --from=builder /app/src ./src
COPY --from=builder /app/nuxt.config.ts ./nuxt.config.ts
COPY --from=builder /app/package.json ./package.json
# 安装调试工具和 serve
RUN apt-get update \
&& apt-get install -y vim net-tools bash \
&& npm install -g serve \
&& rm -rf /var/lib/apt/lists/*
# 暴露端口
EXPOSE 8091
# 配置环境
ENV HOST=0.0.0.0
ENV PORT=8091
# 进入交互式 shell 以便调试
CMD ["bash"]