From bf909c66209ec7d2bb04b0075043978028a9ea02 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 09:09:47 +0200 Subject: [PATCH 01/22] Deploy bugs solved --- services/nginx/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/services/nginx/Dockerfile b/services/nginx/Dockerfile index 074193d903..3e34d9d16f 100644 --- a/services/nginx/Dockerfile +++ b/services/nginx/Dockerfile @@ -1,7 +1,7 @@ FROM nginx -RUN rm /etc/nginx/nginx.conf -RUN rm /etc/nginx/conf.d/default.conf +RUN rm -f /etc/nginx/nginx.conf +RUN rm -f /etc/nginx/conf.d/default.conf COPY temp/nginx.conf /etc/nginx/nginx.conf COPY static /usr/share/nginx/html From d83072cee71f88d655cb1e2a57209bd5f345428c Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 09:33:41 +0200 Subject: [PATCH 02/22] Deploy: COMPOSER_HTTP_TIMEOUT increased --- Jenkinsfile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 555508a319..2153aed812 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,12 +1,10 @@ #!/usr/bin/env groovy -def branchName = env.BRANCH_NAME; - // TODO: We are using latest tag until image rotation it's implemented env.TAG = 'latest' /* env.BUILD_NUMBER */; -env.BRANCH_NAME = branchName; env.salixUser = env.salixUser; env.salixPassword = env.salixPassword; +env.COMPOSER_HTTP_TIMEOUT = 300 switch (branchName) { case 'test': @@ -24,7 +22,7 @@ switch (branchName) { node { stage ('Print environment variables') { - echo "Branch ${branchName}, tag ${env.TAG}, environament ${env.NODE_ENV}" + echo "Branch ${env.BRANCH_NAME}, tag ${env.TAG}, environament ${env.NODE_ENV}" } stage ('Checkout') { checkout scm From 9004173f15c604977b68e58cdd260cb5c24bda82 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 09:35:21 +0200 Subject: [PATCH 03/22] Jenkinsfile sintax fixed --- Jenkinsfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 2153aed812..dd5112b0fa 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -4,9 +4,9 @@ env.TAG = 'latest' /* env.BUILD_NUMBER */; env.salixUser = env.salixUser; env.salixPassword = env.salixPassword; -env.COMPOSER_HTTP_TIMEOUT = 300 +env.COMPOSER_HTTP_TIMEOUT = 300; -switch (branchName) { +switch (env.BRANCH_NAME) { case 'test': env.NODE_ENV = 'test'; env.salixHost = env.testSalixHost; From 281f539aeaf1c4cdd2fc5044c6f4871565bca973 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 12:31:11 +0200 Subject: [PATCH 04/22] Improved deploy speed --- Dockerfile | 10 +--------- Jenkinsfile | 2 ++ gulpfile.js | 8 +++++--- services/auth/Dockerfile | 7 +------ services/client/Dockerfile | 8 +------- services/item/Dockerfile | 8 +------- services/loopback/Dockerfile | 4 ++++ services/mailer/Dockerfile | 9 ++------- services/order/Dockerfile | 12 ------------ services/order/package.json | 16 ---------------- services/order/server/model-config.json | 6 ------ services/order/server/server.js | 5 ----- services/print/Dockerfile | 8 +------- services/production/Dockerfile | 8 +------- services/route/Dockerfile | 8 +------- services/salix/Dockerfile | 8 +------- services/ticket/Dockerfile | 9 +-------- 17 files changed, 22 insertions(+), 114 deletions(-) create mode 100644 services/loopback/Dockerfile delete mode 100644 services/order/Dockerfile delete mode 100644 services/order/package.json delete mode 100644 services/order/server/model-config.json delete mode 100644 services/order/server/server.js diff --git a/Dockerfile b/Dockerfile index 098642bfb8..3018fe2d13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,13 +1,5 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY . /app -COPY ../loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] - -EXPOSE 3000 diff --git a/Jenkinsfile b/Jenkinsfile index dd5112b0fa..a47499cf3e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -29,6 +29,7 @@ node { } stage ('Install client Node dependencies') { sh "npm install" + sh "gulp install" } stage ('Build project') { sh "gulp build" @@ -40,6 +41,7 @@ node { sh "docker-compose down --rmi 'all'" } stage ('Generating new dockers') { + sh "doker build -t vn-loopback:latest ./services/loopback/" sh "docker-compose up -d --build" } } diff --git a/gulpfile.js b/gulpfile.js index e0ad41234f..5c8ded678e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -155,10 +155,12 @@ gulp.task('docker-compose', async () => { let services = await getServices(); for (let service of services) { - let dockerFile = `${__dirname}/services/${service.name}/Dockerfile`; + let dockerFile = `Dockerfile`; - // if (await fs.exists(`./services/${service.name}/Dockerfile`)) - // dockerFile = 'Dockerfile'; + let localDockerFile = `${__dirname}/services/${service.name}/Dockerfile`; + + if (await fs.exists(localDockerFile)) + dockerFile = localDockerFile; composeYml.services[service.name] = { environment: [ diff --git a/services/auth/Dockerfile b/services/auth/Dockerfile index 3a151e2896..9d452364e9 100644 --- a/services/auth/Dockerfile +++ b/services/auth/Dockerfile @@ -1,12 +1,7 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY auth /app -COPY loopback /loopback COPY nginx/static/webpack-assets.json /loopback/client/ WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/client/Dockerfile b/services/client/Dockerfile index 4f58e5ccff..d943bab55c 100644 --- a/services/client/Dockerfile +++ b/services/client/Dockerfile @@ -1,12 +1,6 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY client /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/item/Dockerfile b/services/item/Dockerfile index b87649c5f3..c8f40351b3 100644 --- a/services/item/Dockerfile +++ b/services/item/Dockerfile @@ -1,12 +1,6 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY item /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/loopback/Dockerfile b/services/loopback/Dockerfile new file mode 100644 index 0000000000..81fa3f78b1 --- /dev/null +++ b/services/loopback/Dockerfile @@ -0,0 +1,4 @@ +FROM node:8.9.4 + +COPY . /loopback +RUN npm -g install pm2 diff --git a/services/mailer/Dockerfile b/services/mailer/Dockerfile index 6ac52382eb..393a55762d 100644 --- a/services/mailer/Dockerfile +++ b/services/mailer/Dockerfile @@ -1,11 +1,6 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY mailer /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] + diff --git a/services/order/Dockerfile b/services/order/Dockerfile deleted file mode 100644 index c4d8358dbd..0000000000 --- a/services/order/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM node:8.9.4 - -COPY order /app -COPY loopback /loopback - -WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - -CMD ["pm2-docker", "./server/server.js"] - diff --git a/services/order/package.json b/services/order/package.json deleted file mode 100644 index f389ef8ebd..0000000000 --- a/services/order/package.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "vn-order", - "version": "1.0.0", - "main": "server/server.js", - "scripts": { - "lint": "eslint .", - "start": "node .", - "posttest": "npm run lint && nsp check" - }, - "repository": { - "type": "git", - "url": "https://git.verdnatura.es/salix" - }, - "license": "GPL-3.0", - "description": "vn-order" -} diff --git a/services/order/server/model-config.json b/services/order/server/model-config.json deleted file mode 100644 index 231c0b95f2..0000000000 --- a/services/order/server/model-config.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - -} - - - diff --git a/services/order/server/server.js b/services/order/server/server.js deleted file mode 100644 index 030bbc1b49..0000000000 --- a/services/order/server/server.js +++ /dev/null @@ -1,5 +0,0 @@ - -var vnLoopback = require('../../loopback/server/server.js'); - -var app = module.exports = vnLoopback.loopback(); -vnLoopback.boot(app, __dirname, module); diff --git a/services/print/Dockerfile b/services/print/Dockerfile index 9320bd0ac9..79ec29c2f6 100644 --- a/services/print/Dockerfile +++ b/services/print/Dockerfile @@ -1,11 +1,5 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY print /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/production/Dockerfile b/services/production/Dockerfile index 81a08e0174..c3c5f4472b 100644 --- a/services/production/Dockerfile +++ b/services/production/Dockerfile @@ -1,11 +1,5 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY production /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/route/Dockerfile b/services/route/Dockerfile index 71be841231..f2b9fb18b3 100644 --- a/services/route/Dockerfile +++ b/services/route/Dockerfile @@ -1,11 +1,5 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY route /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/salix/Dockerfile b/services/salix/Dockerfile index a7762e81e9..cb1314ea63 100644 --- a/services/salix/Dockerfile +++ b/services/salix/Dockerfile @@ -1,12 +1,6 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY salix /app -COPY loopback /loopback COPY nginx/static/webpack-assets.json /loopback/client/ - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] diff --git a/services/ticket/Dockerfile b/services/ticket/Dockerfile index b91214f21e..67552ee8c7 100644 --- a/services/ticket/Dockerfile +++ b/services/ticket/Dockerfile @@ -1,12 +1,5 @@ -FROM node:8.9.4 +FROM vn-loopback:latest COPY ticket /app -COPY loopback /loopback - WORKDIR /app - -RUN npm install -RUN npm -g install pm2 - CMD ["pm2-docker", "./server/server.js"] - From f2b9ba41bc2cf9e6c9e2c0b6bbc009b54d7c4f3b Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 12:51:32 +0200 Subject: [PATCH 05/22] Jenkinsfile stages removed --- Jenkinsfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a47499cf3e..c117c15a3e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -27,16 +27,13 @@ node { stage ('Checkout') { checkout scm } - stage ('Install client Node dependencies') { + stage ('Install Node dependencies') { sh "npm install" sh "gulp install" } stage ('Build project') { sh "gulp build" } - stage ('Install services Node dependencies') { - sh "cd ./services/loopback && npm install" - } stage ('Removing old dockers') { sh "docker-compose down --rmi 'all'" } From 0c7b1084f891cac36159feb68af7a35c0b859158 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 12:56:17 +0200 Subject: [PATCH 06/22] Jenkinsfile bugs fixed --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index c117c15a3e..5827ec19a2 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -38,7 +38,7 @@ node { sh "docker-compose down --rmi 'all'" } stage ('Generating new dockers') { - sh "doker build -t vn-loopback:latest ./services/loopback/" + sh "docker build -t vn-loopback:latest ./services/loopback/" sh "docker-compose up -d --build" } } From a8608738196e2f1ed43253ad18a5d95d36d47238 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 14:03:40 +0200 Subject: [PATCH 07/22] Deploy speed inprovements --- gulpfile.js | 2 -- services/mailer/Dockerfile | 1 - services/nginx/Dockerfile | 2 +- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 5c8ded678e..c5f87ce6b5 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -195,8 +195,6 @@ gulp.task('build-clean', () => { const del = require('del'); const files = [ `${buildDir}/*`, - `!${buildDir}/templates`, - `!${buildDir}/images`, `docker-compose.yml` ]; return del(files, {force: true}); diff --git a/services/mailer/Dockerfile b/services/mailer/Dockerfile index 393a55762d..bd8cc10e55 100644 --- a/services/mailer/Dockerfile +++ b/services/mailer/Dockerfile @@ -3,4 +3,3 @@ FROM vn-loopback:latest COPY mailer /app WORKDIR /app CMD ["pm2-docker", "./server/server.js"] - diff --git a/services/nginx/Dockerfile b/services/nginx/Dockerfile index 3e34d9d16f..037dab4415 100644 --- a/services/nginx/Dockerfile +++ b/services/nginx/Dockerfile @@ -6,7 +6,7 @@ RUN rm -f /etc/nginx/conf.d/default.conf COPY temp/nginx.conf /etc/nginx/nginx.conf COPY static /usr/share/nginx/html -RUN apt-get update && apt-get -y install vim dnsmasq dnsutils iputils-ping +RUN apt-get update && apt-get -y install dnsmasq RUN rm -fr /usr/share/dns RUN echo listen-address=127.0.0.1 > /etc/dnsmasq.d/dnsmasq.conf From e93cbda6d0c4db07ad3bef024cf7d229a0bce510 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 20:19:18 +0200 Subject: [PATCH 08/22] Zero deploy downtime, deploy speed improved --- Jenkinsfile | 18 +++++++++++------- gulpfile.js | 30 +++++++++++++++++++----------- package-lock.json | 12 +++++------- 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5827ec19a2..9ee4f4f10f 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,9 +1,8 @@ #!/usr/bin/env groovy +def curCompose = new File('docker-compose.current.yml') + // TODO: We are using latest tag until image rotation it's implemented -env.TAG = 'latest' /* env.BUILD_NUMBER */; -env.salixUser = env.salixUser; -env.salixPassword = env.salixPassword; env.COMPOSER_HTTP_TIMEOUT = 300; switch (env.BRANCH_NAME) { @@ -22,7 +21,7 @@ switch (env.BRANCH_NAME) { node { stage ('Print environment variables') { - echo "Branch ${env.BRANCH_NAME}, tag ${env.TAG}, environament ${env.NODE_ENV}" + echo "Branch ${env.BRANCH_NAME}, build number ${env.BUILD_NUMBER}, environment ${env.NODE_ENV}" } stage ('Checkout') { checkout scm @@ -34,11 +33,16 @@ node { stage ('Build project') { sh "gulp build" } - stage ('Removing old dockers') { - sh "docker-compose down --rmi 'all'" - } stage ('Generating new dockers') { sh "docker build -t vn-loopback:latest ./services/loopback/" sh "docker-compose up -d --build" +/* + def curCompose = new File('docker-compose.current.yml') + if (curCompose.exists()) { + sh "docker-compose --file docker-compose.current.yml down --rmi all" + } +*/ + def compose = new File('docker-compose.yml') + compose.renameTo 'docker-compose.current.new.yml' } } diff --git a/gulpfile.js b/gulpfile.js index c5f87ce6b5..1b24a105df 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -128,7 +128,6 @@ gulp.task('install', () => { let packageFiles = []; let services = fs.readdirSync(servicesDir); - services.push('..'); services.forEach(service => { packageFiles.push(`${servicesDir}/${service}/package.json`); }); @@ -154,8 +153,17 @@ gulp.task('docker-compose', async () => { let composeYml = yaml.safeLoad(compose); let services = await getServices(); + let imageTag = 'latest'; + if (process.env.BUILD_NUMBER) + imageTag = process.env.BUILD_NUMBER; + + let namePrefix = ''; + if (process.env.BRANCH_NAME) + namePrefix = `${process.env.BRANCH_NAME}-`; + for (let service of services) { let dockerFile = `Dockerfile`; + let containerName = `${namePrefix}${service.name}`; let localDockerFile = `${__dirname}/services/${service.name}/Dockerfile`; @@ -163,24 +171,24 @@ gulp.task('docker-compose', async () => { dockerFile = localDockerFile; composeYml.services[service.name] = { + container_name: containerName, + image: `${service.name}:${imageTag}`, + volumes: ['/config:/config'], + build: { + context: `./services`, + dockerfile: dockerFile + }, + ports: [`${service.port}:${defaultPort}`], environment: [ 'NODE_ENV=${NODE_ENV}', 'salixHost=${salixHost}', 'salixPort=${salixPort}', 'salixUser=${salixUser}', 'salixPassword=${salixPassword}' - ], - container_name: `\${BRANCH_NAME}-${service.name}`, - image: `${service.name}:\${TAG}`, - volumes: ['/config:/config'], - build: { - context: `./services`, - dockerfile: dockerFile - }, - ports: [`${service.port}:${defaultPort}`] + ] }; composeYml.services.nginx.links.push( - `${service.name}:\${BRANCH_NAME}-${service.name}` + `${service.name}:${containerName}` ); } diff --git a/package-lock.json b/package-lock.json index fc16c84174..33d2625d83 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8577,7 +8577,7 @@ "lodash.groupby": "4.6.0", "p-queue": "1.2.0", "through2": "2.0.3", - "which": "1.3.0" + "which": "1.3.1" }, "dependencies": { "isexe": { @@ -8597,9 +8597,9 @@ } }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "2.0.0" @@ -10827,7 +10827,6 @@ "version": "3.10.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.10.0.tgz", "integrity": "sha512-O2v52ffjLa9VeM43J4XocZE//WT9N0IiwDa3KSHH7Tu8CtH+1qM8SIZvnsTh6v+4yFy5KUY3BHUVwjpfAWsjIA==", - "dev": true, "requires": { "argparse": "1.0.9", "esprima": "4.0.0" @@ -10836,8 +10835,7 @@ "esprima": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", - "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", - "dev": true + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==" } } }, From ab830ae5263435a04fa34ad1be8f0d829fa6577d Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 20:21:50 +0200 Subject: [PATCH 09/22] Jenkins bugs fixed --- Jenkinsfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 9ee4f4f10f..839bfff230 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -41,8 +41,9 @@ node { if (curCompose.exists()) { sh "docker-compose --file docker-compose.current.yml down --rmi all" } -*/ + def compose = new File('docker-compose.yml') compose.renameTo 'docker-compose.current.new.yml' +*/ } } From 166d4ab242ce41e47ed84f08ab74dc563faf099d Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 20:22:25 +0200 Subject: [PATCH 10/22] Jenkinsfile bugs fixed --- Jenkinsfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 839bfff230..692c18253d 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,7 +1,5 @@ #!/usr/bin/env groovy -def curCompose = new File('docker-compose.current.yml') - // TODO: We are using latest tag until image rotation it's implemented env.COMPOSER_HTTP_TIMEOUT = 300; From 2c9bbcd571de68edecb13bb13bd64caf0b7de282 Mon Sep 17 00:00:00 2001 From: Juan Date: Mon, 11 Jun 2018 21:01:55 +0200 Subject: [PATCH 11/22] Deploy fixes --- Jenkinsfile | 10 +--------- docker-compose.tpl.yml | 2 +- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 692c18253d..bb5baa3fcb 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -34,14 +34,6 @@ node { stage ('Generating new dockers') { sh "docker build -t vn-loopback:latest ./services/loopback/" sh "docker-compose up -d --build" -/* - def curCompose = new File('docker-compose.current.yml') - if (curCompose.exists()) { - sh "docker-compose --file docker-compose.current.yml down --rmi all" - } - - def compose = new File('docker-compose.yml') - compose.renameTo 'docker-compose.current.new.yml' -*/ + sh "docker image prune --all" } } diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index 1777118a7d..5784345e0f 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -2,7 +2,7 @@ version: '2' services: nginx: container_name: "${BRANCH_NAME}-nginx" - image: "nginx:${TAG}" + image: "nginx:${BUILD_NUMBER}" privileged: true build: context: ./services/nginx From bfb89690d69d4ff8eb9d6069b1cfcd32b51d408b Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 09:00:40 +0200 Subject: [PATCH 12/22] Jenkinsfile small fixes --- Jenkinsfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index bb5baa3fcb..5ef4500d73 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,6 +1,5 @@ #!/usr/bin/env groovy -// TODO: We are using latest tag until image rotation it's implemented env.COMPOSER_HTTP_TIMEOUT = 300; switch (env.BRANCH_NAME) { @@ -34,6 +33,6 @@ node { stage ('Generating new dockers') { sh "docker build -t vn-loopback:latest ./services/loopback/" sh "docker-compose up -d --build" - sh "docker image prune --all" + sh "docker image prune -f" } } From f24395f07411857fe84691dc96c19b4467b68971 Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 11:24:43 +0200 Subject: [PATCH 13/22] Lavels to compose services --- Dockerfile | 5 ----- docker-compose.tpl.yml | 4 +--- gulpfile.js | 33 +++++++++++++++++++++------------ services/.gitignore | 3 +-- services/.yo-rc.json | 3 --- 5 files changed, 23 insertions(+), 25 deletions(-) delete mode 100644 Dockerfile delete mode 100644 services/.yo-rc.json diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 3018fe2d13..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM vn-loopback:latest - -COPY . /app -WORKDIR /app -CMD ["pm2-docker", "./server/server.js"] diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index 5784345e0f..fa467795a1 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -1,12 +1,10 @@ version: '2' services: nginx: - container_name: "${BRANCH_NAME}-nginx" - image: "nginx:${BUILD_NUMBER}" privileged: true build: context: ./services/nginx ports: - "80:80" - mem_limit: 200m + mem_limit: 200m, links: [] diff --git a/gulpfile.js b/gulpfile.js index 1b24a105df..37bce1099b 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -163,35 +163,44 @@ gulp.task('docker-compose', async () => { for (let service of services) { let dockerFile = `Dockerfile`; - let containerName = `${namePrefix}${service.name}`; - let localDockerFile = `${__dirname}/services/${service.name}/Dockerfile`; if (await fs.exists(localDockerFile)) dockerFile = localDockerFile; composeYml.services[service.name] = { - container_name: containerName, - image: `${service.name}:${imageTag}`, volumes: ['/config:/config'], build: { context: `./services`, dockerfile: dockerFile }, ports: [`${service.port}:${defaultPort}`], - environment: [ - 'NODE_ENV=${NODE_ENV}', - 'salixHost=${salixHost}', - 'salixPort=${salixPort}', - 'salixUser=${salixUser}', - 'salixPassword=${salixPassword}' - ] + environment: { + NODE_ENV: '${NODE_ENV}', + salixHost: '${salixHost}', + salixPort: '${salixPort}', + salixUser: '${salixUser}', + salixPassword: '${salixPassword}' + } }; + composeYml.services.nginx.links.push( - `${service.name}:${containerName}` + `${service.name}:${namePrefix}${service.name}` ); } + for (let serviceName in composeYml.services) { + let service = composeYml.services[serviceName]; + let data = { + container_name: `${namePrefix}${serviceName}`, + image: `${serviceName}:${imageTag}`, + labels: { + 'salix.tag': imageTag + } + }; + Object.assign(service, data); + } + let ymlString = yaml.safeDump(composeYml); await fs.writeFile('./docker-compose.yml', ymlString); }); diff --git a/services/.gitignore b/services/.gitignore index 9792c4ca5d..0d44de9940 100644 --- a/services/.gitignore +++ b/services/.gitignore @@ -1,3 +1,2 @@ -datasources.test.json -datasources.development.json +datasources.*.json db.json diff --git a/services/.yo-rc.json b/services/.yo-rc.json deleted file mode 100644 index 02f3fc17be..0000000000 --- a/services/.yo-rc.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "generator-loopback": {} -} \ No newline at end of file From 320b18551e09065be3682a126f600f1ad12aa3dc Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 11:39:50 +0200 Subject: [PATCH 14/22] Composer sintax bugs fixed --- docker-compose.tpl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index fa467795a1..6133b21501 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -6,5 +6,5 @@ services: context: ./services/nginx ports: - "80:80" - mem_limit: 200m, + mem_limit: 200m links: [] From a1aef51f3cb3f45d090e5b41655a3cf582a68872 Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 11:59:34 +0200 Subject: [PATCH 15/22] Compose service tag label --- gulpfile.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 37bce1099b..6fdeacffe4 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -191,14 +191,11 @@ gulp.task('docker-compose', async () => { for (let serviceName in composeYml.services) { let service = composeYml.services[serviceName]; - let data = { + Object.assign(service, { container_name: `${namePrefix}${serviceName}`, - image: `${serviceName}:${imageTag}`, - labels: { - 'salix.tag': imageTag - } - }; - Object.assign(service, data); + image: `${serviceName}:${imageTag}` + }); + service.build.labels['salix.tag'] = imageTag; } let ymlString = yaml.safeDump(composeYml); From 8b474f446451f5bfca48affeea828d04c41aef1a Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 12:04:15 +0200 Subject: [PATCH 16/22] Gulp composer bugs fixed --- gulpfile.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index 6fdeacffe4..4a2ed0bcd8 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -195,7 +195,9 @@ gulp.task('docker-compose', async () => { container_name: `${namePrefix}${serviceName}`, image: `${serviceName}:${imageTag}` }); - service.build.labels['salix.tag'] = imageTag; + service.build.labels = { + 'salix.tag': imageTag + }; } let ymlString = yaml.safeDump(composeYml); From 40a4e83f0a3aff2e589a1e1fe9dc899ef9f8fc0b Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 12:31:07 +0200 Subject: [PATCH 17/22] Compose version increased --- docker-compose.tpl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index 6133b21501..31c501ec70 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -1,4 +1,4 @@ -version: '2' +version: '3' services: nginx: privileged: true From a227ea31c2c15d168683b123b343cd0c011c828f Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 12:47:09 +0200 Subject: [PATCH 18/22] Compose fixes --- docker-compose.tpl.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index 31c501ec70..cd3e6ef639 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -5,6 +5,5 @@ services: build: context: ./services/nginx ports: - - "80:80" - mem_limit: 200m + - 80:80 links: [] From 1eb218cbabef39b09e24c5e02c3e91f191c0254c Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 13:01:50 +0200 Subject: [PATCH 19/22] Compose fixes --- docker-compose.tpl.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index cd3e6ef639..c64e6b98b1 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -1,4 +1,4 @@ -version: '3' +version: '3.5' services: nginx: privileged: true From e0535159978b60fde645a7cdb53a911735a48082 Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 13:45:20 +0200 Subject: [PATCH 20/22] Config volume on all containers --- gulpfile.js | 4 ++-- services/loopback/Dockerfile | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4a2ed0bcd8..1efcac25f0 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -169,7 +169,6 @@ gulp.task('docker-compose', async () => { dockerFile = localDockerFile; composeYml.services[service.name] = { - volumes: ['/config:/config'], build: { context: `./services`, dockerfile: dockerFile @@ -193,7 +192,8 @@ gulp.task('docker-compose', async () => { let service = composeYml.services[serviceName]; Object.assign(service, { container_name: `${namePrefix}${serviceName}`, - image: `${serviceName}:${imageTag}` + image: `${serviceName}:${imageTag}`, + volumes: ['/config:/config'] }); service.build.labels = { 'salix.tag': imageTag diff --git a/services/loopback/Dockerfile b/services/loopback/Dockerfile index 81fa3f78b1..65717223d5 100644 --- a/services/loopback/Dockerfile +++ b/services/loopback/Dockerfile @@ -1,4 +1,4 @@ -FROM node:8.9.4 +FROM node:8-slim COPY . /loopback RUN npm -g install pm2 From cde245840464a1cc39a330cdeb0f24fff1eb1599 Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 14:38:27 +0200 Subject: [PATCH 21/22] nginx SSL --- docker-compose.tpl.yml | 1 + services/nginx/nginx.mst | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/docker-compose.tpl.yml b/docker-compose.tpl.yml index c64e6b98b1..efbb564e91 100644 --- a/docker-compose.tpl.yml +++ b/docker-compose.tpl.yml @@ -6,4 +6,5 @@ services: context: ./services/nginx ports: - 80:80 + - 443:443 links: [] diff --git a/services/nginx/nginx.mst b/services/nginx/nginx.mst index ed08ae691a..bcc34920d7 100644 --- a/services/nginx/nginx.mst +++ b/services/nginx/nginx.mst @@ -13,9 +13,18 @@ http { include /etc/nginx/mime.types; server { - listen {{port}}; - server_name {{host}}; - autoindex off; + listen 80 default_server; + listen [::]:80 default_server; + server_name _; + return 301 https://$host$request_uri; + } + + server { + listen 443 ssl; + ssl_certificate /config/nginx/cert.pem; + ssl_certificate_key /config/nginx/key.pem; + server_name {{host}}; + autoindex off; root /usr/share/nginx/html; From 3174f37e3e31beae28af55bf7282abd8091e1868 Mon Sep 17 00:00:00 2001 From: Juan Date: Tue, 12 Jun 2018 17:17:40 +0200 Subject: [PATCH 22/22] Routes fixed to use HTTPS --- client/item/src/descriptor/index.html | 6 +++--- client/item/src/index/product.html | 4 ++-- client/item/src/summary/index.html | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/client/item/src/descriptor/index.html b/client/item/src/descriptor/index.html index 140798989e..e8521b444d 100644 --- a/client/item/src/descriptor/index.html +++ b/client/item/src/descriptor/index.html @@ -11,10 +11,10 @@ - + diff --git a/client/item/src/summary/index.html b/client/item/src/summary/index.html index b19e991462..4cc9edbb10 100644 --- a/client/item/src/summary/index.html +++ b/client/item/src/summary/index.html @@ -5,8 +5,8 @@ + ng-src="//verdnatura.es/vn-image-data/catalog/200x200/{{$ctrl.item.image}}" + zoom-image="//verdnatura.es/vn-image-data/catalog/900x900/{{$ctrl.item.image}}" on-error-src/>
{{$ctrl.item.id}}