Skip to content
Snippets Groups Projects
Commit 051c8ffa authored by Lucas Fernandes de Oliveira's avatar Lucas Fernandes de Oliveira
Browse files

Add Dockerfile and .dockerignore

parent 5164752d
No related branches found
No related tags found
1 merge request!46Add Dockerfile and .dockerignore
Pipeline #
/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" ]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment