diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000000..3f08d4f5d8 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,75 @@ +#!/usr/bin/env groovy + +import groovy.json.*; + +def image; +def branchName = "${env.BRANCH_NAME}"; +def branchNameTest = "preprod"; +def branchNameProd = "master"; +def prefixDocker = "test"; +def dockerNginxName = ["nginx", "-p 80:8080 --link test-auth:auth --link test-salix:salix --link test-client:client"] +def dockerAuthName = ["auth", "-p 3000:3000"] +def dockerSalixName = ["salix", "-p 3001:3001"] +def dockerClientName = ["client", "-p 3002:3002"] + +def buildNumber = "${env.BUILD_NUMBER}"; + +def dockers = [dockerAuthName, dockerSalixName, dockerClientName, dockerNginxName] + +node { + + if (branchName == branchNameProd) + prefixDocker = "prod"; + + stage ('Checkout') { + checkout scm + } + + stage ('build Project Salix'){ + sh "gulp build" + } + + for (int i = 0; i < dockers.size(); i++) + { + def element = dockers[i][0] + def ports = dockers[i][1] + + stage ("docker ${element}") + { + stage ("Stopping ${prefixDocker}-${element} actual") + { + try + { + def returnDocker = sh (script: "docker stop ${prefixDocker}-${element}", returnStdout: true).trim(); + echo "${returnDocker}"; + returnDocker = sh (script: "docker rm ${prefixDocker}-${element}", returnStdout: true).trim(); + echo "${returnDocker}"; + //returnDocker = sh (script: "docker rmi ${prefixDocker}-${element}:${buildNumber-3}", returnStdout: true).trim(); + echo "borran ${prefixDocker}-${element}:${buildNumber-3}"; + //echo "${returnDocker}"; + }catch(Exception _){ + echo "Error Stage Stopping" + } + } + stage ("Create Docker Image ${element}") { + dir("./services/${element}"){ + stage ("Install modules service ${element}"){ + if (fileExists('./package.json')) + sh "npm i" + } + stage("Build image ${element}"){ + image = docker.build("${prefixDocker}-${element}:${buildNumber}", ".") + } + } + } + stage ("Run Docker ${element}"){ + image.run ("${ports} --name ${prefixDocker}-${element}") + } + /* + stage('docker registry'){ + docker.withServer('tcp://harbor.verdnatura.es','docker-registry') + } + */ + } + } +} \ No newline at end of file diff --git a/services/auth/Dockerfile b/services/auth/Dockerfile index 9c80229536..c7f1590cc1 100644 --- a/services/auth/Dockerfile +++ b/services/auth/Dockerfile @@ -6,4 +6,6 @@ WORKDIR /app RUN npm install -CMD ["npm", "start"] \ No newline at end of file +CMD ["npm", "start"] + +EXPOSE 3000 diff --git a/services/client/Dockerfile b/services/client/Dockerfile index afb62ac9aa..865de516e2 100644 --- a/services/client/Dockerfile +++ b/services/client/Dockerfile @@ -6,4 +6,6 @@ WORKDIR /app RUN npm install -CMD ["npm", "start"] \ No newline at end of file +CMD ["npm", "start"] + +EXPOSE 3002 \ No newline at end of file diff --git a/services/nginx/Dockerfile b/services/nginx/Dockerfile index ff059ad87f..727770d37e 100644 --- a/services/nginx/Dockerfile +++ b/services/nginx/Dockerfile @@ -4,6 +4,8 @@ RUN rm /etc/nginx/nginx.conf RUN rm /etc/nginx/conf.d/default.conf -COPY conf-prod.conf /etc/nginx/nginx.conf +COPY conf-prod.conf /etc/nginx/nginx.conf -COPY build /etc/nginx \ No newline at end of file +COPY static /usr/share/nginx/html + +EXPOSE 8080 \ No newline at end of file diff --git a/services/nginx/conf-prod.conf b/services/nginx/conf-prod.conf index e0c9529b1d..c2a028fa85 100644 --- a/services/nginx/conf-prod.conf +++ b/services/nginx/conf-prod.conf @@ -25,15 +25,15 @@ http { } location ~ ^/auth(?:/(.*))?$ { - proxy_pass http://192.168.99.100:3000/$1$is_args$args; + proxy_pass http://test-auth:3000/$1$is_args$args; } location ~ ^/salix(?:/(.*))?$ { - proxy_pass http://192.168.99.100:3001/$1$is_args$args; + proxy_pass http://test-salix:3001/$1$is_args$args; } location ~ ^/client(?:/(.*))?$ { - proxy_pass http://192.168.99.100:3002/$1$is_args$args; + proxy_pass http://test-client:3002/$1$is_args$args; } } } \ No newline at end of file diff --git a/services/salix/Dockerfile b/services/salix/Dockerfile index afb62ac9aa..9addf39cb5 100644 --- a/services/salix/Dockerfile +++ b/services/salix/Dockerfile @@ -6,4 +6,6 @@ WORKDIR /app RUN npm install -CMD ["npm", "start"] \ No newline at end of file +CMD ["npm", "start"] + +EXPOSE 3001 \ No newline at end of file