Files
buildpath/match_collector/Dockerfile
Valentin Haudiquet ee32060a7f
All checks were successful
pipeline / lint-and-format (push) Successful in 10m57s
pipeline / build-and-push-images (push) Successful in 49s
feat/match_collector: set sleep time to 12h
2026-05-01 00:39:24 +02:00

34 lines
1.5 KiB
Docker

# This Dockerfile should be built from the project root directory:
# docker build -f match_collector/Dockerfile -t buildpath-match_collector .
FROM node:current-alpine AS build
RUN mkdir -p /home/node/app && chown -R node:node /home/node/app
WORKDIR /home/node/app
# Copy and build dragon-item-parser first
COPY --chown=node:node dragon-item-parser/package*.json ./dragon-item-parser/
COPY --chown=node:node dragon-item-parser/tsconfig.json ./dragon-item-parser/
COPY --chown=node:node dragon-item-parser/src ./dragon-item-parser/src
WORKDIR /home/node/app/dragon-item-parser
RUN npm install && npm run build
# Build match_collector
WORKDIR /home/node/app
COPY --chown=node:node match_collector/package*.json ./match_collector/
WORKDIR /home/node/app/match_collector
RUN npm install
COPY --chown=node:node match_collector/. .
FROM node:current-alpine
# Install su-exec for dropping privileges
RUN apk add --no-cache su-exec
RUN mkdir -p /home/node/app && chown -R node:node /home/node/app
WORKDIR /home/node/app
COPY --from=build --chown=node:node /home/node/app/match_collector/node_modules ./node_modules
COPY --from=build --chown=node:node /home/node/app/match_collector/. .
COPY --chown=node:node match_collector/docker-entrypoint.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
# Run entrypoint as root to fix permissions, then drop to node user
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["/bin/sh", "-c", "node --import=tsx src/index.ts; sleep 12h"]