Files
agent-fox/packages/server/Dockerfile
YANG JIANKUAN 5e6efdaf59 fix: Docker 构建改用 npm 替代 pnpm + 补全 OAuth/Redis 环境变量
- Dockerfile 全部改为 npm install + 全局 tsc,解决 pnpm 符号链接问题
- docker-compose 添加 Redis 服务、OAuth 环境变量透传、web 端口改为可配置
- MCP URL 改用 window.location.origin 适配反向代理
- tsconfig 添加 paths 映射解决 Docker 内模块引用

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 17:24:52 +08:00

40 lines
1.5 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

FROM node:20-alpine AS build
RUN npm install -g typescript@5
WORKDIR /app
COPY tsconfig.base.json ./
COPY prisma/ prisma/
# shared: 安装依赖 + prisma generate
COPY packages/shared/package.json packages/shared/tsconfig.json packages/shared/
RUN cd packages/shared && npm install && npx prisma generate --schema=../../prisma/schema.prisma
# server: 安装依赖workspace:* → file: 引用)
COPY packages/server/package.json packages/server/tsconfig.json packages/server/
RUN cd packages/server && sed -i 's|"workspace:\*"|"file:../shared"|g' package.json && npm install
# 拷贝源码 + 编译
COPY packages/shared/src/ packages/shared/src/
COPY packages/server/src/ packages/server/src/
RUN tsc -p packages/shared/tsconfig.json
RUN tsc -p packages/server/tsconfig.json
# --- 精简运行时镜像 ---
FROM node:20-alpine AS runtime
RUN npm install -g prisma@6
WORKDIR /app
COPY --from=build /app/packages/shared/dist ./packages/shared/dist
COPY --from=build /app/packages/shared/package.json ./packages/shared/
COPY --from=build /app/packages/shared/node_modules ./packages/shared/node_modules
COPY --from=build /app/packages/server/dist ./packages/server/dist
COPY --from=build /app/packages/server/package.json ./packages/server/
COPY --from=build /app/packages/server/node_modules ./packages/server/node_modules
COPY --from=build /app/prisma ./prisma
COPY scripts/migrate-and-start.sh ./scripts/
RUN chmod +x scripts/migrate-and-start.sh
EXPOSE 3000
CMD ["sh", "scripts/migrate-and-start.sh"]