ops: стенд — schedd 0.5.0 (run-deadline), timeoutMs -1, ozon bind-mount state на хост

- schedd.Dockerfile: daemon 0.4.2 → 0.5.0 (фикс envelope-дыра/statusUrl/poll-retry/run-deadline)
- tasks.json: timeoutMs -1 на обе пайплайн-таски (никогда не авто-терминировать)
- docker-compose: ozon /app/data + /app/state.json bind-mount на хост (как ym)
- data-ozon/state.json: baked-снапшот state из образа
This commit is contained in:
2026-08-20 22:50:56 +03:00
parent aa8b74a699
commit 3060263b9d
5 changed files with 16 additions and 4 deletions

View File

@@ -0,0 +1,6 @@
{
"lastSpecSha256": "8756930c9921a569473dee082586af4e390f45497d4a1dd3ba4b7b622e232822",
"recipeVersion": "1.3.0",
"lastSpecSnapshot": "2026-08-20",
"lastRunAt": "2026-08-20T10:19:48.760Z"
}

View File

@@ -90,7 +90,9 @@ services:
GH_TOKEN: ${GITHUB_TOKEN:-}
NPM_TOKEN: ${NPM_TOKEN:-}
volumes:
- ozon-data:/app/data
- ./data-ozon:/app/data
# state.json на хост — иначе живёт в слое образа (run.js хардкодит ROOT) и теряется при пересоздании
- ./data-ozon/state.json:/app/state.json
# снапшот спеки из репо (fetch антиботом не ходим — dry-run от ручного снапшота)
- ./data-ozon-openapi:/app/openapi
ports:
@@ -160,7 +162,6 @@ services:
volumes:
sched-data:
ozon-data:
networks:
sched-local:

View File

@@ -1,5 +1,6 @@
# schedd — опубликованный daemon из приватного реестра (verdaccio), как на проде.
# @sched/daemon@0.4.2 (latest) + deps (core 0.44.0, admin-api 0.2.0, mcp 0.4.1).
# @sched/daemon@0.5.0 (latest) + deps (core 0.45.0) — фикс 2026-08-20: envelope-дыра,
# относительный statusUrl, poll-ретраи 2×500мс, run-deadline контракт (task-level timeoutMs).
# node >= 24 (engines у daemon; node:sqlite).
FROM node:24-alpine
RUN apk add --no-cache git
@@ -7,7 +8,7 @@ WORKDIR /app
ENV NODE_ENV=production
ARG VERDACCIO_TOKEN
RUN npm config set //verdaccio.kzntsv.site/:_authToken=${VERDACCIO_TOKEN} \
&& npm install -g @sched/daemon@0.4.2 --registry=https://verdaccio.kzntsv.site --no-audit --no-fund
&& npm install -g @sched/daemon@0.5.0 --registry=https://verdaccio.kzntsv.site --no-audit --no-fund
EXPOSE 8080
VOLUME ["/data"]
ENTRYPOINT ["schedd"]

View File

@@ -3,6 +3,7 @@
{
"name": "ozon-seller-pipeline",
"runner": "http",
"timeoutMs": -1,
"schedules": [{ "cron": "0 2 * * *" }],
"config": {
"url": "http://ozon-seller-builder:8080/run?async=1",
@@ -17,6 +18,7 @@
{
"name": "yandex-market-pipeline",
"runner": "http",
"timeoutMs": -1,
"schedules": [{ "cron": "30 2 * * *" }],
"config": {
"handler": "pipeline",