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