ops(sched-pipelines): локальный стенд sched + ym/ozon воркеры + browser/ntfy/alert-bridge; ТЗ разосланы

This commit is contained in:
2026-08-20 20:07:50 +03:00
parent cbd22be2a2
commit bfcc4d5e72
9 changed files with 491 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
# Локальная копия service/Dockerfile из ozon-seller-api-client с фиксом:
# `COPY state.json ./state.json 2>/dev/null || true` — шелл-синтаксис в COPY не валиден,
# docker падает «"/2>/dev/null": not found». state.json в контексте есть, копируем напрямую.
FROM node:22-alpine
RUN apk add --no-cache openjdk21-jre-headless git
WORKDIR /app
COPY package.json package-lock.json ./
# lock пинит yaml на verdaccio (локальный .npmrc хоста имеет токен, контейнер — нет)
ARG VERDACCIO_TOKEN
RUN npm config set //verdaccio.kzntsv.site/:_authToken=${VERDACCIO_TOKEN} \
&& npm ci --no-audit --no-fund || npm install --no-audit --no-fund
COPY service/ ./service/
COPY generator/ ./generator/
COPY test/ ./test/
COPY LICENSE ./
COPY state.json ./state.json
ENV NODE_ENV=production
ENV WORKER_PORT=8080
ENV WORKER_TOKEN=
# крон-расписание (формат node-cron): в стеке переопределяется на «никогда» —
# расписанием рулит sched daemon
ENV CRON_SCHEDULE="0 0 31 2 *"
EXPOSE 8080
CMD ["node", "service/entrypoint.js"]