fetch_ml/deployments/docker-compose.prod.smoke.yml
Jeremie Fraeys bcc432a524
fix(deployments): use relative paths instead of FETCHML_REPO_ROOT with wrong fallback
Replace all .. with proper relative paths:

- Build context: Use '.' (current directory = project root when using --project-directory)
- Volume mounts: Use './data/...' instead of '../data/...'
- Config mounts: Use './configs/...' instead of '../configs/...'

The '..' fallback was incorrect - when --project-directory is set to repo root,
'..' would point to parent of repo instead of repo itself. Using '.' or
'./path' correctly resolves relative to project root.

Environment variables for data directories (SMOKE_TEST_DATA_DIR, PROD_DATA_DIR,
HOMELAB_DATA_DIR, LOCAL_DATA_DIR) are preserved for runtime customization.
2026-02-24 11:53:19 -05:00

83 lines
2.2 KiB
YAML

services:
caddy:
image: caddy:2-alpine
container_name: ml-smoke-caddy
environment:
- FETCHML_DOMAIN=localhost
ports:
- "8080:80"
volumes:
- ./deployments/Caddyfile.prod.smoke:/etc/caddy/Caddyfile:ro
- ${SMOKE_TEST_DATA_DIR:-./data/prod-smoke}/caddy/data:/data
- ${SMOKE_TEST_DATA_DIR:-./data/prod-smoke}/caddy/config:/config
networks:
- default
depends_on:
- api-server
redis:
image: redis:7-alpine
user: "999:999"
restart: unless-stopped
expose:
- "6379"
volumes:
- ${SMOKE_TEST_DATA_DIR:-./data/prod-smoke}/redis:/data
command: redis-server --appendonly yes
healthcheck:
test: [ "CMD", "redis-cli", "ping" ]
interval: 10s
timeout: 5s
retries: 10
api-server:
build:
context: .
dockerfile: build/docker/simple.Dockerfile
user: "0:0"
restart: unless-stopped
expose:
- "9101"
depends_on:
redis:
condition: service_healthy
volumes:
- ${SMOKE_TEST_DATA_DIR:-./data/prod-smoke}/experiments:/data/experiments
- ${SMOKE_TEST_DATA_DIR:-./data/prod-smoke}/active:/data/active
- ${SMOKE_TEST_DATA_DIR:-./data/prod-smoke}/logs:/logs
- ./configs/api/dev.yaml:/app/configs/api/dev.yaml:ro
command: ["/bin/sh", "-c", "mkdir -p /data/experiments /data/active/datasets /data/active/snapshots && exec /usr/local/bin/api-server -config /app/configs/api/dev.yaml"]
environment:
- LOG_LEVEL=info
healthcheck:
test: [ "CMD", "curl", "-f", "http://localhost:9101/health" ]
interval: 10s
timeout: 5s
retries: 10
ssh-test-server:
image: linuxserver/openssh-server:latest
container_name: ml-ssh-test
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- PUBLIC_KEY_FILE=/tmp/test_key.pub
- USER_NAME=test
- PASSWORD_ACCESS=false
volumes:
- ./deployments/test_keys:/tmp:ro
- ${FETCHML_REPO_ROOT:-..}/bin/tui-linux:/usr/local/bin/tui:ro
- ./deployments/tui-test-config.toml:/config/.ml/config.toml:ro
ports:
- "2222:2222"
networks:
- default
depends_on:
- caddy
- api-server
networks:
default:
name: ml-prod-smoke-network