From 907b3641a304a8ee844443213a621aa43d18bf2d Mon Sep 17 00:00:00 2001 From: xrazis Date: Mon, 8 Jun 2020 14:50:20 +0000 Subject: [PATCH] init nodejs-conf --- nodejs-config/Dockerfile | 19 ++++++++++++++++ nodejs-config/docker-compose.yml | 39 ++++++++++++++++++++++++++++++++ nodejs-config/makefile | 16 +++++++++++++ 3 files changed, 74 insertions(+) create mode 100644 nodejs-config/Dockerfile create mode 100644 nodejs-config/docker-compose.yml create mode 100644 nodejs-config/makefile diff --git a/nodejs-config/Dockerfile b/nodejs-config/Dockerfile new file mode 100644 index 0000000..b6fe342 --- /dev/null +++ b/nodejs-config/Dockerfile @@ -0,0 +1,19 @@ +FROM node:10 + +# Create app directory +WORKDIR /usr/src/app + +# 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 ./ + +RUN npm install +# If you are building your code for production +# RUN npm ci --only=production + +# Bundle app source +COPY . . + +EXPOSE 8080 +CMD [ "node", "app.js" ] \ No newline at end of file diff --git a/nodejs-config/docker-compose.yml b/nodejs-config/docker-compose.yml new file mode 100644 index 0000000..8e77b23 --- /dev/null +++ b/nodejs-config/docker-compose.yml @@ -0,0 +1,39 @@ +version: "3.6" + +services: + app: + build: + context: . + dockerfile: Dockerfile + image: xrazis/nodejs-project + volumes: + - /usr/src/app/ + restart: unless-stopped + ports: + - "3000:3000" + networks: + - node-network + deploy: + mode: replicated + replicas: 9 + placement: + constraints: + - node.role==worker + resources: + limits: + cpus: "0.50" + memory: 50M + reservations: + cpus: "0.25" + memory: 20M + restart_policy: + condition: on-failure + delay: 5s + max_attempts: 3 + window: 120s + +networks: + node-network: + driver: overlay +volumes: + node-vol: diff --git a/nodejs-config/makefile b/nodejs-config/makefile new file mode 100644 index 0000000..7337324 --- /dev/null +++ b/nodejs-config/makefile @@ -0,0 +1,16 @@ +default: + PATH=/usr/bin:/usr/local/bin + + AWS_ACCESS_KEY_ID=d4bb2d45395befe5f29f54a9c219a2559ee1bfaab64fce897001c209a52516f4 AWS_SECRET_ACCESS_KEY=e5ed1e5812522fcfe0624c75e20ebe9f72435855e4ef26c1f3b018918744e1a1 /usr/local/bin/aws --endpoint-url https://83.212.77.30:9443 s3 sync s3://nodebucket /home/user/docker_node_image/localdir --delete --no-verify-ssl + + rm -rf app + + cp -a /home/user/docker_node_image/localdir/. /home/user/docker_node_image/app + cp -a /home/user/docker_node_image/docker-compose.yml /home/user/docker_node_image/app + cp -a /home/user/docker_node_image/Dockerfile /home/user/docker_node_image/app + + docker stack rm node_stack + + docker build --pull --rm -f "app/Dockerfile" -t xrazis/nodejs-project "app" + docker push xrazis/nodejs-project:latest + docker stack deploy --compose-file=docker-compose.yml node_stack \ No newline at end of file