36 lines
1.5 KiB
Docker
36 lines
1.5 KiB
Docker
FROM node:20-alpine AS base
|
|
RUN corepack enable && corepack prepare pnpm@10 --activate
|
|
|
|
# ── deps layer ────────────────────────────────────────────────────────────────
|
|
FROM base AS deps
|
|
WORKDIR /app
|
|
COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./
|
|
COPY packages/parser2/package.json ./packages/parser2/
|
|
COPY packages/ship-reader/package.json ./packages/ship-reader/
|
|
RUN pnpm install --frozen-lockfile --prod
|
|
|
|
# ── runner (использует pre-built artifacts) ───────────────────────────────────
|
|
FROM base AS runner
|
|
WORKDIR /app
|
|
|
|
# Non-root user
|
|
RUN addgroup -g 1001 -S parser && adduser -u 1001 -S parser -G parser
|
|
|
|
COPY --from=deps /app/node_modules ./node_modules
|
|
COPY --from=deps /app/packages/parser2/node_modules ./packages/parser2/node_modules
|
|
COPY --from=deps /app/packages/ship-reader/node_modules ./packages/ship-reader/node_modules
|
|
|
|
COPY packages/parser2/dist ./packages/parser2/dist
|
|
COPY packages/ship-reader/dist ./packages/ship-reader/dist
|
|
COPY packages/parser2/package.json packages/parser2/LICENSE packages/parser2/NOTICE ./packages/parser2/
|
|
COPY packages/ship-reader/package.json packages/ship-reader/LICENSE packages/ship-reader/NOTICE ./packages/ship-reader/
|
|
COPY package.json pnpm-workspace.yaml README.md ./
|
|
|
|
USER parser
|
|
|
|
ENV NODE_ENV=production
|
|
ENV LOG_LEVEL=info
|
|
|
|
ENTRYPOINT ["node", "packages/parser2/dist/cli/index.js"]
|
|
CMD ["--help"]
|