ai_learn_node/backend/Dockerfile

34 lines
855 B
Docker
Raw Normal View History

FROM node:18-alpine
2026-01-14 11:30:15 +00:00
# 安装 OpenSSLPrisma 需要)
# Alpine 3.19+ 使用 openssl3旧版本使用 openssl1.1-compat
RUN apk add --no-cache openssl libc6-compat || \
apk add --no-cache openssl1.1-compat || \
apk add --no-cache openssl
WORKDIR /app
2026-01-14 11:30:15 +00:00
# 先复制 shared 包workspace 依赖)
COPY shared ./shared
# 复制 backend 的 package 文件
COPY backend/package*.json ./
COPY backend/prisma ./prisma/
2026-01-14 11:30:15 +00:00
# 安装依赖shared 包直接使用源码,不需要安装)
# 修改 package.json 中的 shared 依赖为 file:./shared
RUN sed -i 's|"@ai-learning/shared": "\*"|"@ai-learning/shared": "file:./shared"|' package.json && \
npm install --production
# 复制构建产物
2026-01-14 11:30:15 +00:00
COPY backend/dist ./dist
# 生成 Prisma Client
RUN npx prisma generate
# 暴露端口
EXPOSE 3001
# 启动应用
CMD ["node", "dist/index.js"]