diff --git a/.env.sample b/.env.sample new file mode 100644 index 0000000000000000000000000000000000000000..679f53379ddcabc7af4ab79aac50a437e0672b90 --- /dev/null +++ b/.env.sample @@ -0,0 +1,16 @@ +# Use this variable to add configurations : +# docker-compose.yml : required +# ports.yml : bind the port 300 to the $PORT variable +# traefik.yml : add traefik configurations +COMPOSE_FILE=docker-compose.yml:docker/ports.yml +#COMPOSE_FILE=docker-compose.yml:docker/ports.yml:docker/traefik.yml + +# Choose between "dev" and "prod" +ENV=dev +# If you use docker/ports.yml +PORT=3000 +# If you use docker/traefik.yml +# A unique name for traefik router +NAME= +# A traefik host rule ex `domain.FQDN` or `domain1.FQDN`,`domain2.FQDN` +HOST=`domain.fqdn` diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..2baf0895fc5358d6d35d453d27b890bc021c899a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +version: "3" + +services: + front: + build: + context: "docker/" + volumes: + - ${PWD}:/app + environment: + ENV: + diff --git a/docker/Dockerfile b/docker/Dockerfile index 29162a464c302701efc592d166641719463ad83e..052f0ab04558c9c6779bb0044802ecb634c5b770 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,21 +1,18 @@ # From base image node FROM node:16 -# Create app directory -RUN mkdir -p /usr/src/app -WORKDIR /usr/src/app +VOLUME /app -# Copying all the files from your file system to container file system -COPY package.json . +WORKDIR /app -# Install all dependencies -RUN npm install +RUN ls -la -# Copy other files too -COPY ./ . +COPY entrypoint.sh / # Expose the port -EXPOSE 3030 +EXPOSE 3000 + +USER node # Command to run app when intantiate an image -CMD ["npm","start"] +ENTRYPOINT ["/entrypoint.sh"] diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100755 index 0000000000000000000000000000000000000000..4f5feaa5d43f6f7dcfbe0b9e69670ec5b78046c4 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +npm install +./cli post_install + +if [ "$ENV" == "prod" ]; then + cmd="npm start" +else + cmd="npm start" +fi + +if [ ! -z "$1" ]; then + cmd=$@ +fi +exec $cmd diff --git a/docker/ports.yml b/docker/ports.yml new file mode 100644 index 0000000000000000000000000000000000000000..c7334bd2295bc0f9a0e163da83cb5a99709d573f --- /dev/null +++ b/docker/ports.yml @@ -0,0 +1,6 @@ +version: "3" + +services: + front: + ports: + - ${PORT}:3000 diff --git a/server.js b/server.js index 9817860f4fdafe13c09c68804bae056455e97da4..56141f01350f28d0a352a33ed14471adffeab4c3 100644 --- a/server.js +++ b/server.js @@ -1,7 +1,7 @@ const express = require('express'); const multer = require('multer'); const app = express(); -const port = 3001; +const port = 3000; app.use('/static', express.static('uploads')); const storage = multer.diskStorage({