- Upgrade Dockerfile base from node:18 to node:20 (fixes crypto global) - Map host port 4025 → container 4018 (4018 taken by actiontrail) - Join learning_ai_common_plat_default Docker network for platform service - Switch all @bytelyst/* link: deps to registry versions - Bump @bytelyst/llm to ^0.1.1 (adds createFallbackChain, GeminiProvider etc) - Regenerate pnpm-lock.yaml against Gitea registry Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55 lines
1.5 KiB
Docker
55 lines
1.5 KiB
Docker
# Build context: learning_ai_invt_trdg/ (monorepo root)
|
|
# docker-compose passes GITEA_NPM_TOKEN as a build arg for the private @bytelyst registry
|
|
#
|
|
# --- Stage 1: Build ---
|
|
FROM node:20-alpine AS builder
|
|
|
|
RUN corepack enable && corepack prepare pnpm@10.6.5 --activate
|
|
|
|
WORKDIR /app
|
|
|
|
ARG GITEA_NPM_TOKEN
|
|
ENV GITEA_NPM_TOKEN=${GITEA_NPM_TOKEN}
|
|
|
|
# Copy workspace root files first (layer cache)
|
|
# NOTE: After switching @bytelyst/* deps from link: to registry, run:
|
|
# GITEA_NPM_TOKEN=<token> pnpm install
|
|
# to regenerate pnpm-lock.yaml, then restore --frozen-lockfile here.
|
|
COPY .npmrc pnpm-workspace.yaml pnpm-lock.yaml* ./
|
|
COPY package.json ./package.json
|
|
COPY backend/package.json ./backend/package.json
|
|
|
|
# Install backend deps only
|
|
RUN pnpm install --filter @bytelyst/trading-backend
|
|
|
|
# Copy source (backend + shared types used by tsconfig rootDir "..")
|
|
COPY backend/ ./backend/
|
|
COPY shared/ ./shared/
|
|
WORKDIR /app/backend
|
|
RUN pnpm run build
|
|
|
|
# --- Stage 2: Production ---
|
|
FROM node:20-alpine
|
|
|
|
RUN corepack enable && corepack prepare pnpm@10.6.5 --activate
|
|
|
|
WORKDIR /app
|
|
|
|
ARG GITEA_NPM_TOKEN
|
|
ENV GITEA_NPM_TOKEN=${GITEA_NPM_TOKEN}
|
|
|
|
COPY .npmrc pnpm-workspace.yaml pnpm-lock.yaml* ./
|
|
COPY package.json ./package.json
|
|
COPY backend/package.json ./backend/package.json
|
|
|
|
RUN pnpm install --filter @bytelyst/trading-backend --prod
|
|
|
|
COPY --from=builder /app/backend/dist ./backend/dist
|
|
|
|
RUN chown -R node:node /app
|
|
USER node
|
|
|
|
WORKDIR /app/backend
|
|
EXPOSE 4018
|
|
CMD ["node", "dist/backend/src/bootstrap.js"]
|