Files
goto/apps/web/docker-compose.dev.yml

107 lines
2.8 KiB
YAML

services:
goto-app:
image: goto:dev
platform: linux/amd64
build:
context: ../..
dockerfile: apps/web/Dockerfile
target: dev
args:
LOCAL_UID: ${LOCAL_UID:-1000}
LOCAL_GID: ${LOCAL_GID:-1000}
user: '${LOCAL_UID:-1000}:${LOCAL_GID:-1000}'
working_dir: /m/apps/web
env_file:
- path: .env
required: false
environment:
NODE_ENV: development
PORT: 5173
ports:
- '127.0.0.1:${GOTO_DEV_PORT:-5173}:5173'
volumes:
- ./config:/m/apps/web/config:ro
- ./data:/m/apps/web/data
- ./src:/m/apps/web/src:ro
- ./server:/m/apps/web/server:ro
- ./vite.config.ts:/m/apps/web/vite.config.ts:ro
- ./tsconfig.json:/m/apps/web/tsconfig.json:ro
- ../../packages/config/src:/m/packages/config/src:ro
- ../../packages/db/src:/m/packages/db/src:ro
- ../../packages/analytics/src:/m/packages/analytics/src:ro
restart: unless-stopped
healthcheck:
test:
- CMD
- node
- --eval
- fetch('http://localhost:5173/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))
interval: 30s
timeout: 3s
start_period: 60s
retries: 3
goto-worker:
image: goto-worker:dev
platform: linux/amd64
build:
context: ../..
dockerfile: apps/worker/Dockerfile
target: dev
args:
LOCAL_UID: ${LOCAL_UID:-1000}
LOCAL_GID: ${LOCAL_GID:-1000}
user: '${LOCAL_UID:-1000}:${LOCAL_GID:-1000}'
working_dir: /m/apps/worker
env_file:
- path: .env
required: false
environment:
NODE_ENV: development
PORT: 9000
volumes:
- ./config:/m/apps/worker/config:ro
- ./data:/m/apps/worker/data
- ../worker/src:/m/apps/worker/src:ro
- ../../packages/config/src:/m/packages/config/src:ro
- ../../packages/db/src:/m/packages/db/src:ro
- ../../packages/analytics/src:/m/packages/analytics/src:ro
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: 10s
retries: 3
goto-cli:
image: goto-cli:dev
platform: linux/amd64
build:
context: ../..
dockerfile: apps/cli/Dockerfile
target: prod
profiles:
- tools
user: '${LOCAL_UID:-1000}:${LOCAL_GID:-1000}'
env_file:
- path: .env
required: false
environment:
NODE_ENV: development
PORT: 5173
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