削除したもの traefik-net 外部ネットワーク windmill_server の全 Traefik ラベル windmill_extra の全 Traefik ラベル サーバー固有のボリューム /home/windmill/windmill:/workspace(ローカルには不要) Google OAuth 環境変数(ローカル開発では不要) windmill_indexer(replicas: 0 で無意味だったので削除) 追加・変更したもの 項目 変更前 変更後 ネットワーク traefik-net + windmill-internal windmill-internal のみ アクセス方法 Traefik経由(HTTPS) Caddy経由 http://localhost POSTGRES_PASSWORD ${POSTGRES_PASSWORD} ${DATABASE_PASSWORD}(.envと統一) windmill_worker replicas 3 1(ローカル用に軽量化) pull_policy always if_not_present(毎回pullしない) BASE_URL https://windmill.keinafarm.net http://localhost 新規作成 Caddyfile.local — ローカル用のシンプルなCaddy設定(LSP WebSocket・デバッガー対応) 起動方法 docker compose -f docker-compose-dev.yml up -d 起動後、ブラウザで http://localhost にアクセスすればWindmillが使えます。 注意: windmill_worker に /var/run/docker.sock をマウントしていますが、Windows の Docker Desktop は通常これをサポートしています。もし問題が出る場合はそのボリューム行を削除してください。
153 lines
3.3 KiB
YAML
153 lines
3.3 KiB
YAML
version: "3.9"
|
|
|
|
x-logging: &default-logging
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "${LOG_MAX_SIZE:-20m}"
|
|
max-file: "${LOG_MAX_FILE:-10}"
|
|
compress: "true"
|
|
|
|
networks:
|
|
windmill-internal:
|
|
driver: bridge
|
|
|
|
services:
|
|
db:
|
|
deploy:
|
|
replicas: 1
|
|
image: postgres:16
|
|
shm_size: 1g
|
|
restart: unless-stopped
|
|
volumes:
|
|
- db_data:/var/lib/postgresql/data
|
|
expose:
|
|
- 5432
|
|
environment:
|
|
POSTGRES_PASSWORD: ${DATABASE_PASSWORD}
|
|
POSTGRES_DB: windmill
|
|
healthcheck:
|
|
test: [ "CMD-SHELL", "pg_isready -U postgres" ]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
logging: *default-logging
|
|
networks:
|
|
- windmill-internal
|
|
|
|
windmill_server:
|
|
image: ${WM_IMAGE}
|
|
container_name: windmill_server
|
|
pull_policy: if_not_present
|
|
deploy:
|
|
replicas: 1
|
|
restart: unless-stopped
|
|
expose:
|
|
- 8000
|
|
environment:
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- MODE=server
|
|
- BASE_URL=http://localhost
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- worker_logs:/tmp/windmill/logs
|
|
networks:
|
|
- windmill-internal
|
|
logging: *default-logging
|
|
|
|
windmill_worker:
|
|
image: ${WM_IMAGE}
|
|
pull_policy: if_not_present
|
|
deploy:
|
|
replicas: 1
|
|
resources:
|
|
limits:
|
|
cpus: "1"
|
|
memory: 2048M
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- MODE=worker
|
|
- WORKER_GROUP=default
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- worker_dependency_cache:/tmp/windmill/cache
|
|
- worker_logs:/tmp/windmill/logs
|
|
networks:
|
|
- windmill-internal
|
|
logging: *default-logging
|
|
|
|
windmill_worker_native:
|
|
image: ${WM_IMAGE}
|
|
pull_policy: if_not_present
|
|
deploy:
|
|
replicas: 1
|
|
resources:
|
|
limits:
|
|
cpus: "1"
|
|
memory: 2048M
|
|
restart: unless-stopped
|
|
environment:
|
|
- DATABASE_URL=${DATABASE_URL}
|
|
- MODE=worker
|
|
- WORKER_GROUP=native
|
|
- NUM_WORKERS=8
|
|
- SLEEP_QUEUE=200
|
|
depends_on:
|
|
db:
|
|
condition: service_healthy
|
|
volumes:
|
|
- worker_logs:/tmp/windmill/logs
|
|
networks:
|
|
- windmill-internal
|
|
logging: *default-logging
|
|
|
|
windmill_extra:
|
|
image: ghcr.io/windmill-labs/windmill-extra:${WM_VERSION}
|
|
pull_policy: if_not_present
|
|
restart: unless-stopped
|
|
expose:
|
|
- 3001
|
|
- 3003
|
|
environment:
|
|
- ENABLE_LSP=true
|
|
- ENABLE_MULTIPLAYER=false
|
|
- ENABLE_DEBUGGER=true
|
|
- DEBUGGER_PORT=3003
|
|
- ENABLE_NSJAIL=false
|
|
- REQUIRE_SIGNED_DEBUG_REQUESTS=false
|
|
- WINDMILL_BASE_URL=http://windmill_server:8000
|
|
volumes:
|
|
- lsp_cache:/pyls/.cache
|
|
networks:
|
|
- windmill-internal
|
|
logging: *default-logging
|
|
|
|
caddy:
|
|
image: caddy:2.9-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
volumes:
|
|
- ./Caddyfile.local:/etc/caddy/Caddyfile
|
|
- caddy_data:/data
|
|
- caddy_config:/config
|
|
networks:
|
|
- windmill-internal
|
|
logging: *default-logging
|
|
depends_on:
|
|
- windmill_server
|
|
- windmill_extra
|
|
|
|
volumes:
|
|
db_data: null
|
|
worker_dependency_cache: null
|
|
worker_logs: null
|
|
lsp_cache: null
|
|
caddy_data: null
|
|
caddy_config: null
|