27 lines
781 B
Docker
27 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"]
|
|
|