fix(docker): resolve @cc-platform/server file: dep in container build

Use additional_contexts to copy platform server package into the Docker
build context. Rewrites the file: dependency path and removes the
lockfile so npm install can resolve the local package correctly.
Applied to both production and dev Dockerfiles.
This commit is contained in:
MayaTheShy
2026-03-28 22:35:53 -04:00
parent ed612f3e38
commit f008a9e665
4 changed files with 20 additions and 0 deletions

View File

@@ -6,6 +6,8 @@ services:
build: build:
context: ./server context: ./server
dockerfile: Dockerfile.dev dockerfile: Dockerfile.dev
additional_contexts:
platform-server: ../cc-platform-core/server
container_name: turtle-server-dev container_name: turtle-server-dev
ports: ports:
- "3001:3001" - "3001:3001"

View File

@@ -4,6 +4,8 @@ services:
build: build:
context: ./server context: ./server
dockerfile: Dockerfile dockerfile: Dockerfile
additional_contexts:
platform-server: ../cc-platform-core/server
container_name: turtle-server container_name: turtle-server
ports: ports:
- "4200:3001" # HTTP API + WebSocket (unified) - "4200:3001" # HTTP API + WebSocket (unified)

View File

@@ -3,9 +3,17 @@ FROM node:18-alpine
WORKDIR /app WORKDIR /app
# Copy platform server package from additional build context
COPY --from=platform-server . /app/platform-server/
RUN rm -rf /app/platform-server/node_modules
# Copy package files # Copy package files
COPY package*.json ./ COPY package*.json ./
# Rewrite file: dependency to use the local copy inside the container
RUN sed -i 's|file:../../cc-platform-core/server|file:./platform-server|' package.json \
&& rm -f package-lock.json
# Install dependencies # Install dependencies
RUN npm install --omit=dev RUN npm install --omit=dev

View File

@@ -3,12 +3,20 @@ FROM node:18-alpine
WORKDIR /app WORKDIR /app
# Copy platform server package from additional build context
COPY --from=platform-server . /app/platform-server/
RUN rm -rf /app/platform-server/node_modules
# Install nodemon for hot reload # Install nodemon for hot reload
RUN npm install -g nodemon RUN npm install -g nodemon
# Copy package files # Copy package files
COPY package*.json ./ COPY package*.json ./
# Rewrite file: dependency to use the local copy inside the container
RUN sed -i 's|file:../../cc-platform-core/server|file:./platform-server|' package.json \
&& rm -f package-lock.json
# Install all dependencies (including dev) # Install all dependencies (including dev)
RUN npm install RUN npm install