107 lines
2.8 KiB
YAML
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
|