# Локальная копия 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"]