From a693ba668b4139ebe8e37ad88170ffabd46b0944 Mon Sep 17 00:00:00 2001 From: jarrodback Date: Wed, 2 Feb 2022 22:04:36 +0000 Subject: [PATCH 1/5] HT-16 Add dockerfiles and compose script --- docker/buildDockerImages.bat | 4 +++ docker/buildServer.bat | 2 ++ docker/buildUI.bat | 2 ++ docker/docker-compose.yml | 56 ++++++++++++++++++++++++++++++++++++ server/.env | 2 +- server/Dockerfile | 7 +++++ server/database/index.js | 3 +- server/package.json | 1 + ui/Dockerfile | 9 ++++++ ui/vue.config.js | 5 ++++ 10 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 docker/buildDockerImages.bat create mode 100644 docker/buildServer.bat create mode 100644 docker/buildUI.bat create mode 100644 docker/docker-compose.yml create mode 100644 server/Dockerfile create mode 100644 ui/Dockerfile create mode 100644 ui/vue.config.js diff --git a/docker/buildDockerImages.bat b/docker/buildDockerImages.bat new file mode 100644 index 0000000..2a2998e --- /dev/null +++ b/docker/buildDockerImages.bat @@ -0,0 +1,4 @@ +cd ../ui/ +docker build -t highway-ui . +cd ../server/ +docker build -t highway-server . \ No newline at end of file diff --git a/docker/buildServer.bat b/docker/buildServer.bat new file mode 100644 index 0000000..12f5eb5 --- /dev/null +++ b/docker/buildServer.bat @@ -0,0 +1,2 @@ +cd ../server/ +docker build -t highway-server . \ No newline at end of file diff --git a/docker/buildUI.bat b/docker/buildUI.bat new file mode 100644 index 0000000..a83a61f --- /dev/null +++ b/docker/buildUI.bat @@ -0,0 +1,2 @@ +cd ../ui/ +docker build -t highway-ui . \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..4400b84 --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,56 @@ +version: "2" +services: + web: + image: "highway-ui" + ports: + - "8080:8080" + networks: + - frontend + depends_on: + - server + links: + - server + server: + image: "highway-server" + ports: + - "3000:3000" + depends_on: + - mongo + links: + - mongo + networks: + - backend + - frontend + mongo: + image: "mongo" + ports: + - "27017:27017" + networks: + - backend + +networks: + frontend: + backend: + + +# DB + +# Run +# docker run -v mongodata:/data/db -d -p 27017:27017 --name highway-db highway-db + +# UI + +# Run +# docker run -d -p 8080:8080 --rm --name highway-ui- highway-ui + +# Build +# docker build -t highway-ui . + + +# Server + +# Run +# docker run -d -p 3000:3000 --rm --name highway-server highway-server + +# Build +# docker build -t highway-server . \ No newline at end of file diff --git a/server/.env b/server/.env index 3fff465..46f1bfd 100644 --- a/server/.env +++ b/server/.env @@ -1 +1 @@ -TOKEN_SECRET=test \ No newline at end of file +TOKEN_SECRET=TEST_TOKEN \ No newline at end of file diff --git a/server/Dockerfile b/server/Dockerfile new file mode 100644 index 0000000..2e11f80 --- /dev/null +++ b/server/Dockerfile @@ -0,0 +1,7 @@ +# syntax=docker/dockerfile:1 +FROM node:16-alpine +RUN apk add --no-cache python2 g++ make +WORKDIR /server +COPY . . +RUN npm install +CMD ["node", "bin/www"] \ No newline at end of file diff --git a/server/database/index.js b/server/database/index.js index eaea80b..20b096d 100644 --- a/server/database/index.js +++ b/server/database/index.js @@ -16,7 +16,7 @@ db.mongoose = mongoose; // For GITHUB ACTIONS - if null set it to testing if (!dbConfig) { dbConfig = { - url: "mongodb://localhost:27017/highwaytrackerdb_testing", + url: "mongodb://mongo:27017/highwaytrackerdb_testing", }; } @@ -29,7 +29,6 @@ db.mongoose.plugin((schema) => { function setRunValidators() { this.setOptions({ runValidators: true }); } - // Using the mongoose object, start the database db.mongoose .connect(db.url, { diff --git a/server/package.json b/server/package.json index 4dab44b..77f3769 100644 --- a/server/package.json +++ b/server/package.json @@ -15,6 +15,7 @@ "eslint": "^8.8.0", "express": "^4.17.2", "haversine": "^1.1.1", + "haversine-distance": "^1.2.1", "http-errors": "^2.0.0", "jshint": "^2.13.4", "jsonwebtoken": "^8.5.1", diff --git a/ui/Dockerfile b/ui/Dockerfile new file mode 100644 index 0000000..031a53d --- /dev/null +++ b/ui/Dockerfile @@ -0,0 +1,9 @@ +FROM node:16-alpine +RUN npm install -g http-server +WORKDIR /ui +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build +EXPOSE 8080 +CMD ["npm", "run", "serve"] \ No newline at end of file diff --git a/ui/vue.config.js b/ui/vue.config.js new file mode 100644 index 0000000..17c0cf1 --- /dev/null +++ b/ui/vue.config.js @@ -0,0 +1,5 @@ +module.exports = { + devServer: { + host: "0.0.0.0", + }, +}; From d8dbc29a0cf5198a24e4483066a92b3208cef394 Mon Sep 17 00:00:00 2001 From: jarrodback Date: Wed, 2 Feb 2022 22:15:15 +0000 Subject: [PATCH 2/5] HT-16 Set docker to production and fix pipeline tests --- server/Dockerfile | 1 + server/config/db.config.js | 3 +++ server/database/index.js | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/server/Dockerfile b/server/Dockerfile index 2e11f80..d748021 100644 --- a/server/Dockerfile +++ b/server/Dockerfile @@ -4,4 +4,5 @@ RUN apk add --no-cache python2 g++ make WORKDIR /server COPY . . RUN npm install +ENV NODE_ENV production CMD ["node", "bin/www"] \ No newline at end of file diff --git a/server/config/db.config.js b/server/config/db.config.js index bddb744..20128fb 100644 --- a/server/config/db.config.js +++ b/server/config/db.config.js @@ -5,4 +5,7 @@ module.exports = { test: { url: "mongodb://localhost:27017/highwaytrackerdb_testing", }, + production: { + url: "mongodb://mongo:27017/highwaytrackerdb", + }, }; diff --git a/server/database/index.js b/server/database/index.js index 20b096d..54e7f4f 100644 --- a/server/database/index.js +++ b/server/database/index.js @@ -16,7 +16,7 @@ db.mongoose = mongoose; // For GITHUB ACTIONS - if null set it to testing if (!dbConfig) { dbConfig = { - url: "mongodb://mongo:27017/highwaytrackerdb_testing", + url: "mongodb://localhost:27017/highwaytrackerdb_testing", }; } From 1cb766f829f8a91a31a37ca0e6e97723e52cb12b Mon Sep 17 00:00:00 2001 From: jarrodback Date: Wed, 2 Feb 2022 22:20:53 +0000 Subject: [PATCH 3/5] HT-16 Attempt to fix code coverage pipeline --- .github/workflows/node.js.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 245174a..26a7ed7 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -4,7 +4,10 @@ name: Build-Test-Deploy Pipeline on: - push + push: + branches: [ * ] + pull_request: + branches: [ develop ] jobs: build: From 65c661cc0056dda2e12fb6bf8034d49049df7653 Mon Sep 17 00:00:00 2001 From: jarrodback Date: Wed, 2 Feb 2022 22:23:06 +0000 Subject: [PATCH 4/5] HT-16 Attempt to fix code coverage pipeline #2 --- .github/workflows/node.js.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index 26a7ed7..c253ba8 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -4,10 +4,7 @@ name: Build-Test-Deploy Pipeline on: - push: - branches: [ * ] - pull_request: - branches: [ develop ] + push jobs: build: @@ -50,6 +47,7 @@ jobs: cd ui npm test - name: Code Coverage + - if: github.event_name == 'pull_request' uses: romeovs/lcov-reporter-action@v0.2.16 with: lcov-file: ./server/coverage/lcov.info From 85e216c0e8333f2e063817336d83c31f55ea6cd3 Mon Sep 17 00:00:00 2001 From: jarrodback Date: Wed, 2 Feb 2022 22:26:21 +0000 Subject: [PATCH 5/5] HT-16 Attempt to fix code coverage pipeline #3 --- .github/workflows/node.js.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml index c253ba8..30bfc55 100644 --- a/.github/workflows/node.js.yml +++ b/.github/workflows/node.js.yml @@ -47,7 +47,7 @@ jobs: cd ui npm test - name: Code Coverage - - if: github.event_name == 'pull_request' + if: github.event_name == 'pull_request' uses: romeovs/lcov-reporter-action@v0.2.16 with: lcov-file: ./server/coverage/lcov.info