ci: move the integration stack clear of the ports that host already uses

8000 was Portainer's Edge tunnel, not a stray process. The first attempt at a
fix picked 18080/18081, which are the production dtf-cloud stack's own defaults
in docker-compose.yml: it would have passed only while that stack was down and
collided again the moment it came back.

Use 28080/28081/28000/29000/29001, clear of Portainer (8000, 9443), both
production stack definitions (18080/18081 and 8080/8081) and the usual MinIO
ports. The occupants are listed in the workflow so the next person choosing a
port can see what is taken.

Ephemeral ports would remove the guesswork but do not work here: the published
port is baked into PUBLIC_ORIGIN, ALLOWED_ORIGINS and the CSP when the
containers start, so it has to be known before they run.

Full suite verified on the new block, including the browser end-to-end.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Cauê Faleiros
2026-09-21 13:04:56 -03:00
parent 24cb52d992
commit 7cab210674

View File

@@ -32,13 +32,19 @@ jobs:
timeout-minutes: 45 timeout-minutes: 45
env: env:
# The runner shares the host's Docker daemon, so every published port is # The runner shares the host's Docker daemon, so every published port is
# taken on the machine itself and 8000/8080/9000 collide with whatever else # taken on the machine itself. Known occupants of that host:
# runs there. Use a high block that nothing is likely to hold. # 8000, 9443 Portainer (the Edge tunnel and its UI)
SITE_PORT: "18080" # 18080/18081 the production dtf-cloud stack (docker-compose.yml defaults)
KANBAN_PORT: "18081" # 8080/8081 deploy/stack.yaml defaults
API_PORT: "18000" # 9000/9001 MinIO defaults elsewhere
STORAGE_PORT: "19000" # This block avoids all of them. Ephemeral ports are not an option: the
STORAGE_CONSOLE_PORT: "19001" # published port is baked into PUBLIC_ORIGIN, ALLOWED_ORIGINS and the CSP
# when the containers start, so it has to be known beforehand.
SITE_PORT: "28080"
KANBAN_PORT: "28081"
API_PORT: "28000"
STORAGE_PORT: "29000"
STORAGE_CONSOLE_PORT: "29001"
COMPOSE: docker compose -f compose.local.yaml COMPOSE: docker compose -f compose.local.yaml
steps: steps:
- name: Checkout - name: Checkout