diff --git a/Dockerfile b/Dockerfile index 534ed786e4a2c5d99429f02987cec6c699e2ea47..0aa0e3d56db4bb73ddf843bef55eb838f8fb8f5f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,21 +1,17 @@ -FROM node:alpine +FROM node:alpine AS BUILD COPY . /tmp/src - -RUN apk add --no-cache -t build-deps make gcc g++ python ca-certificates libc-dev wget \ - && cd /tmp/src \ +# install some dependencies needed for the build process +RUN apk add --no-cache -t build-deps make gcc g++ python ca-certificates libc-dev wget +RUN cd /tmp/src \ && npm install \ - && npm run build \ - && mv build / \ - && mv config / \ - && mv node_modules / \ - && cd / \ - && rm -rf /tmp/* \ - && apk del build-deps \ - && sh -c 'cd /build/tools; for TOOL in *.js; do LINK="/usr/bin/$(basename $TOOL .js)"; echo -e "#!/bin/sh\ncd /data;\nnode /build/tools/$TOOL \$@" > $LINK; chmod +x $LINK; done' + && npm run build +FROM node:alpine ENV NODE_ENV=production - +COPY --from=BUILD /tmp/src/build /build +COPY --from=BUILD /tmp/src/config /config +COPY --from=BUILD /tmp/src/node_modules /node_modules +RUN sh -c 'cd /build/tools; for TOOL in *.js; do LINK="/usr/bin/$(basename $TOOL .js)"; echo -e "#!/bin/sh\ncd /data;\nnode /build/tools/$TOOL \$@" > $LINK; chmod +x $LINK; done' CMD node /build/src/discordas.js -p 9005 -c /data/config.yaml -f /data/discord-registration.yaml - EXPOSE 9005 VOLUME ["/data"]