fix(docker): clone platform from git instead of additional_contexts

The additional_contexts approach required cc-platform-core to exist on
the Docker host at a relative path. This fails on servers where the
repo layout differs. Instead, use a multi-stage build: stage 1 clones
cc-platform-core from Gitea (depth 1), stage 2 copies server/ into the
app and rewrites the file: path. Fully self-contained — no host deps.
This commit is contained in:
MayaTheShy
2026-03-28 22:37:57 -04:00
parent c3344288a8
commit badde91336
2 changed files with 12 additions and 8 deletions

View File

@@ -1,9 +1,6 @@
services: services:
server: server:
build: build: ./server
context: ./server
additional_contexts:
platform-server: ../../cc-platform-core/server
networks: networks:
- inventory-network - inventory-network
volumes: volumes:

View File

@@ -1,4 +1,12 @@
# Node.js backend # Stage 1: Fetch platform server package from git
FROM alpine:3.20 AS platform
RUN apk add --no-cache git
ARG PLATFORM_REPO=https://git.spatulaa.com/MayaTheShy/cc-platform-core.git
ARG PLATFORM_BRANCH=master
RUN git clone --depth 1 --branch "$PLATFORM_BRANCH" "$PLATFORM_REPO" /src \
&& rm -rf /src/server/node_modules /src/.git
# Stage 2: Node.js backend
FROM node:20-alpine FROM node:20-alpine
# Build tools needed for better-sqlite3 native compilation # Build tools needed for better-sqlite3 native compilation
@@ -8,9 +16,8 @@ RUN apk add --no-cache python3 make g++ su-exec libstdc++
WORKDIR /app WORKDIR /app
# Copy platform server package from additional build context # Copy platform server package from the git-clone stage
COPY --from=platform-server . /app/platform-server/ COPY --from=platform /src/server /app/platform-server/
RUN rm -rf /app/platform-server/node_modules
COPY package*.json ./ COPY package*.json ./