Issue #53: Add Dockerfile and .dockerignore

Signed-off-by: Lucas Fernandes de Oliveira's avatarLucas Fernandes de Oliveira <lfo14@inf.ufpr.br>
parent 5164752d
Pipeline #13883 passed with stage
in 54 seconds
/artwork
/config
/coverage
/database
/doc
/node_modules
nodemon.json
/service
/.git
*.swp
*.log
# Avoid the use of floating tags like: latest, boron, argon and carbon
ARG VERSION=6.12.2
FROM node:$VERSION
LABEL autor="C3SL - Centro de Computação Científica e Software Livre"
# Node was not designed to run as PID 1 (process in docker run with PID 1).
# Its recommended to use the flag --init or use tine to start node process
# in docker
# Add Tini
ENV TINI_VERSION="v0.16.1" WORKSPACE="/home/node/app/"
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json $WORKSPACE
RUN \
chmod +x /tini &&\
chown -R node:node $WORKSPACE
USER node
WORKDIR $WORKSPACE
RUN npm install
# Bundle app source
# COPY copy files as root so chown must be used
USER root
COPY . .
RUN find . -user root | xargs chown node:node
USER node
VOLUME ["/home/node/app/config"]
EXPOSE 3000
HEALTHCHECK CMD curl -f http://localhost:3000/v1/metrics || exit 1
# Instead of using npm start to start the container, directly put the command
# that npm start executes.
# First off this reduces the number of processes running inside of your container
# Secondly it causes exit signals such as SIGTERM and SIGINT to be received by
# the Node.js process instead of npm swallowing them.
ENTRYPOINT ["/tini", "--"]
CMD ["node", "index" ]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment