service-semaphore/Dockerfile

28 lines
781 B
Docker

# Using Alpine to keep the images smaller
# Change to using the official NodeJS Alpine container
FROM node:18-alpine
# Pushing all files into image
ENV SEMAPHORE_VERSION=1.0.0
WORKDIR /app
RUN wget -q "https://github.com/NickColley/semaphore/archive/refs/tags/$SEMAPHORE_VERSION.tar.gz" \
-O /tmp/semaphore.tar.gz \
&& tar xavf /tmp/semaphore.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
ENV PORT=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 ["node", "server.js"]