docs(runbook): sched-workers-vds-mock-runbook (wiki:3339) + стек 29 compose — воркеры @apilki на VDS (мок-прогон, task:1537)
This commit is contained in:
96
host-stacks/vds-kzntsv/sched-workers.compose.yml
Normal file
96
host-stacks/vds-kzntsv/sched-workers.compose.yml
Normal file
@@ -0,0 +1,96 @@
|
||||
# sched-workers — HTTP-воркеры пайплайнов клиентов @apilki (VDS, рядом с ядром sched).
|
||||
# Ядро sched: стек 28 (sched.compose.yml). Воркеры — отдельный стек в той же сети proxy,
|
||||
# sched ходит к ним по имени сервиса из sched.tasks.json.
|
||||
# Моки: verdaccio.kzntsv.site (npm), git.kzntsv.site (Gitea = мок-GitHub, орга apilki),
|
||||
# ntfy (VDS-сервис в proxy), unisender-mock (локальный мок писем в этом стеке).
|
||||
# Deploy: Portainer-managed (см. portainer-stack-management-vds). Env через Portainer (не env_file).
|
||||
# Source-of-truth: host-stacks/vds-kzntsv/sched-workers.compose.yml.
|
||||
|
||||
services:
|
||||
ym-client-builder:
|
||||
image: registry.kzntsv.site/ym-client-builder:0.1.2
|
||||
container_name: ym-client-builder
|
||||
restart: unless-stopped
|
||||
mem_limit: 512m
|
||||
networks:
|
||||
- proxy
|
||||
environment:
|
||||
PORT: "8080"
|
||||
SCHED_API_KEY: ${SCHED_API_KEY}
|
||||
UNISENDER_API_KEY: mock-key
|
||||
UNISENDER_FROM: noreply@snolla.com
|
||||
NPM_TOKEN: ${NPM_TOKEN}
|
||||
GITHUB_TOKEN: ${GITHUB_TOKEN}
|
||||
# мок-publish: verdaccio (npm) + Gitea (репо/релизы) — без выхода в npmjs/github.com
|
||||
PUBLISH_REGISTRY: ${PUBLISH_REGISTRY}
|
||||
PUBLISH_REMOTE_BASE: ${PUBLISH_REMOTE_BASE}
|
||||
PUBLISH_GH_API_BASE: ${PUBLISH_GH_API_BASE}
|
||||
volumes:
|
||||
- /opt/stacks/sched-workers/data-ym:/app/data
|
||||
|
||||
ozon-seller-builder:
|
||||
image: registry.kzntsv.site/ozon-seller-builder:0.1.0
|
||||
container_name: ozon-seller-builder
|
||||
restart: unless-stopped
|
||||
# tsc-сборка клиента ~700MB пик (openapi-generator + компилятор) — 512m OOM
|
||||
mem_limit: 1g
|
||||
networks:
|
||||
- proxy
|
||||
environment:
|
||||
WORKER_PORT: "8080"
|
||||
SCHED_API_KEY: ${SCHED_API_KEY}
|
||||
# внутренний крон не нужен — расписанием рулит sched. 31 февраля не наступает никогда.
|
||||
CRON_SCHEDULE: "0 0 29 2 *"
|
||||
# персистентность state/output на хосте (bind-mount /app/data)
|
||||
STATE_FILE: /app/data/state.json
|
||||
OUTPUT_DIR: /app/data/output/typescript
|
||||
# безопасный дефолт: DRY_RUN=1. Реальный мок-publish — только явным data.dryRun=false в таске.
|
||||
DRY_RUN: "1"
|
||||
BROWSER_CDP_URL: http://browser:9222
|
||||
NTFY_URL: http://ntfy
|
||||
NTFY_TOPIC: ozon-seller-pipeline
|
||||
UNISENDER_API_KEY: mock-key
|
||||
UNISENDER_SENDER_EMAIL: noreply@snolla.com
|
||||
UNISENDER_SENDER_NAME: sched-pipeline
|
||||
UNISENDER_ENDPOINT: http://unisender-mock:8080/ru/transactional/api/v1/email/send.json
|
||||
NOTIFY_EMAIL_TO: ${NOTIFY_EMAIL_TO}
|
||||
GH_TOKEN: ${GITHUB_TOKEN}
|
||||
NPM_TOKEN: ${NPM_TOKEN}
|
||||
# мок-publish: verdaccio (npm) + Gitea (репо/релизы) — без выхода в npmjs/github.com
|
||||
PUBLISH_REGISTRY: ${PUBLISH_REGISTRY}
|
||||
PUBLISH_REMOTE_BASE: ${PUBLISH_REMOTE_BASE}
|
||||
PUBLISH_GH_API_BASE: ${PUBLISH_GH_API_BASE}
|
||||
volumes:
|
||||
- /opt/stacks/sched-workers/data-ozon:/app/data
|
||||
# снапшот спеки из репо (fetch антиботом не ходим — dry-run от ручного снапшота)
|
||||
- /opt/stacks/sched-workers/data-ozon-openapi:/app/openapi
|
||||
depends_on:
|
||||
- browser
|
||||
|
||||
# headless Chrome + CDP :9222 (для антибот-fetch стадий ozon), socat наружу 0.0.0.0:9222
|
||||
browser:
|
||||
image: registry.kzntsv.site/browser-cdp:0.1.0
|
||||
container_name: browser-cdp
|
||||
shm_size: "1gb"
|
||||
restart: unless-stopped
|
||||
mem_limit: 512m
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
# мок Unisender Go: письма в /opt/stacks/sched-workers/data-mail, реальных отправок нет
|
||||
unisender-mock:
|
||||
image: registry.kzntsv.site/unisender-mock:0.1.0
|
||||
container_name: unisender-mock
|
||||
restart: unless-stopped
|
||||
mem_limit: 128m
|
||||
environment:
|
||||
PORT: "8080"
|
||||
MAIL_DIR: /mail
|
||||
volumes:
|
||||
- /opt/stacks/sched-workers/data-mail:/mail
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
Reference in New Issue
Block a user