fix(docker): read the Nexus token from NEXUS_TOKEN instead of ~/.npmrc

Dokploy builds failed with "failed to stat /root/.npmrc": the compose build
secret pointed at ${HOME}/.npmrc, which only exists on a developer machine.
The token now comes from the NEXUS_TOKEN environment variable (Dokploy's
Environment tab or .env), is written to a temporary npmrc and removed in the
same RUN, so it never lands in an image layer.

Also removes a temporary UI dev-server spec that was committed by mistake,
and documents the variable (.env.example, docs 06/07, Word/PDF export).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 14:11:01 +02:00
parent 566f415fa7
commit bf0294a188
8 changed files with 35 additions and 133 deletions

View File

@@ -2,13 +2,14 @@
# docker compose up -d --build → everything: web on http://localhost:8080
# docker compose up -d postgres mongo redis → only infrastructure (then `npx nx serve api` / `npx nx serve web`)
#
# Building needs access to Pireon's Nexus (@pi/ui): the token is read from ~/.npmrc as a build secret.
# Building needs access to Pireon's Nexus (@pi/ui): set NEXUS_TOKEN in the environment or in .env
# (Dokploy: Environment tab). It reaches the build as a secret and never lands in an image layer.
services:
web:
build:
context: .
target: web
secrets: [npmrc]
secrets: [nexus_token]
image: task-stream-web
ports: ['8080:80']
depends_on:
@@ -19,7 +20,7 @@ services:
build:
context: .
target: api
secrets: [npmrc]
secrets: [nexus_token]
image: task-stream-api
ports: ['3000:3000']
environment:
@@ -81,5 +82,5 @@ volumes:
redis-data:
secrets:
npmrc:
file: ${HOME}/.npmrc
nexus_token:
environment: NEXUS_TOKEN