diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9ee6b08 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# Using Alpine to keep the images smaller +# Change to using the official NodeJS Alpine container +FROM node:16-alpine + +# Pushing all files into image +WORKDIR /app +RUN wget -q https://github.com/NickColley/semaphore/archive/refs/tags/1.0.0.tar.gz \ + -O /tmp/semaphore.tar.gz \ + && tar xavf /tmp/1.0.0.tar.gz --strip-components 1 \ + && rm -f /tmp/semaphore.tar.gz + +# Install Semaphore +RUN yarn --production --pure-lockfile \ + && yarn build \ + && yarn cache clean \ + && rm -rf ./src ./docs ./tests ./bin + +# Expose port 4002 +EXPOSE 4002 + +# Setting run-command, using explicit `node` command +# rather than `yarn` or `npm` to use less memory +# https://github.com/nolanlawson/pinafore/issues/971 +CMD ["PORT=4002", "node", "server.js"] +