FROM node:latest AS builder WORKDIR /opt/mx-puppet-discord RUN apt update && apt -y install ca-certificates # run build process as user in case of npm pre hooks # pre hooks are not executed while running as root RUN chown node:node /opt/mx-puppet-discord USER node COPY package.json package-lock.json ./ RUN npm install COPY tsconfig.json ./ COPY src/ ./src/ RUN npm run build #FROM node:alpine VOLUME /data ENV CONFIG_PATH=/data/config.yaml \ REGISTRATION_PATH=/data/discord-registration.yaml # su-exec is used by docker-run.sh to drop privileges #RUN apk add --no-cache su-exec WORKDIR /opt/mx-puppet-discord COPY docker-run.sh ./ #COPY /opt/mx-puppet-discord/node_modules/ ./node_modules/ #COPY /opt/mx-puppet-discord/build/ ./build/ # change workdir to /data so relative paths in the config.yaml # point to the persisten volume WORKDIR /mnt ENTRYPOINT ["/opt/mx-puppet-discord/docker-run.sh"]