Files
goto/apps/web/docker-compose.yml
eleith 81fc971ee1
ci/woodpecker/pr/cli Pipeline was successful
ci/woodpecker/pr/config Pipeline was successful
ci/woodpecker/pr/db Pipeline was successful
ci/woodpecker/pr/web Pipeline was successful
ci/woodpecker/pr/worker Pipeline was successful
ci/woodpecker/push/cli Pipeline was successful
ci/woodpecker/push/config Pipeline was successful
ci/woodpecker/push/db Pipeline was successful
ci/woodpecker/push/web Pipeline was successful
ci/woodpecker/push/worker Pipeline was successful
build(worker): add containers and matching CI/CD
2026-11-05 06:55:09 -08:00

101 lines
2.1 KiB
YAML

services:
goto-app:
image: goto:local
platform: linux/amd64
build:
context: ../..
dockerfile: apps/web/Dockerfile
target: prod
working_dir: /app
env_file:
- path: .env
required: false
environment:
NODE_ENV: production
PORT: 3000
ports:
- '127.0.0.1:3000:3000'
volumes:
- ./config:/app/config:ro
- ./data:/app/data
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=16m
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
restart: unless-stopped
healthcheck:
test:
- CMD
- node
- --eval
- fetch('http://localhost:3000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
interval: 30s
timeout: 3s
start_period: 5s
retries: 3
goto-worker:
image: goto-worker:local
platform: linux/amd64
build:
context: ../..
dockerfile: apps/worker/Dockerfile
target: prod
working_dir: /app
env_file:
- path: .env
required: false
environment:
NODE_ENV: production
PORT: 9000
volumes:
- ./config:/app/config:ro
- ./data:/app/data
read_only: true
tmpfs:
- /tmp:rw,noexec,nosuid,size=16m
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
restart: unless-stopped
healthcheck:
test:
- CMD
- node
- --eval
- fetch('http://localhost:9000/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
interval: 30s
timeout: 3s
start_period: 5s
retries: 3
goto-cli:
image: goto-cli:local
platform: linux/amd64
build:
context: ../..
dockerfile: apps/cli/Dockerfile
target: prod
profiles:
- tools
env_file:
- path: .env
required: false
environment:
NODE_ENV: production
PORT: 3000
volumes:
- ./config:/app/config:ro
read_only: true
network_mode: none
tmpfs:
- /tmp:rw,noexec,nosuid,size=16m
cap_drop:
- ALL
security_opt:
- no-new-privileges:true