Skip to content
Snippets Groups Projects
Commit 9110beb6 authored by Alessandro Cerioni's avatar Alessandro Cerioni
Browse files

Environment agnostic docker compose file.

parent 22a4652d
Branches
Tags
No related merge requests found
Pipeline #
...@@ -2,13 +2,31 @@ stages: ...@@ -2,13 +2,31 @@ stages:
- build - build
- deploy - deploy
variables:
USER_SUPPORT_MAILBOX: alpha-test@erasme.org
build_development: build_development:
stage: build stage: build
only: only:
- master - development
script: script:
- export NODE_ENV=DEV
- export TAG=dev - export TAG=dev
- export MAIL_SERVICE_BIND_PORT=3000
- export RABBITMQ_GUI_PORT=15672
- docker-compose build
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker-compose push
build_release:
stage: build
only:
- tags
except:
- /^(?!master).+@/
script:
- export TAG=$CI_COMMIT_TAG
- export MAIL_SERVICE_BIND_PORT=3000
- export RABBITMQ_GUI_PORT=15672
- docker-compose build - docker-compose build
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker-compose push - docker-compose push
...@@ -16,25 +34,30 @@ build_development: ...@@ -16,25 +34,30 @@ build_development:
deploy_development: deploy_development:
stage: deploy stage: deploy
only: only:
- master - development
script: script:
- export NODE_ENV=DEV
- export TAG=dev - export TAG=dev
- export MAIL_SERVICE_BIND_PORT=3001
- export RABBITMQ_GUI_PORT=15672
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker-compose pull - docker-compose pull
- docker-compose --project-name service-email-${TAG} up -d - docker-compose --project-name service-email-${TAG} up -d --force-recreate
environment:
name: development
deploy_staging: deploy_staging:
stage: deploy stage: deploy
only: only:
- master - development
when: manual when: manual
script: script:
- export TAG=staging - export TAG=staging
- export NODE_ENV=REC - export MAIL_SERVICE_BIND_PORT=3101
- sed -i 's/DEV_/REC_/g' docker-compose.yml - export RABBITMQ_GUI_PORT=15673
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- TAG=dev docker-compose pull - TAG=dev docker-compose pull
- docker tag $CI_REGISTRY/refonte-data/service-email:dev $CI_REGISTRY/refonte-data/service-email:${TAG} - docker tag $CI_REGISTRY/refonte-data/service-email:dev $CI_REGISTRY/refonte-data/service-email:${TAG}
- docker push $CI_REGISTRY/refonte-data/service-email:${TAG} - docker push $CI_REGISTRY/refonte-data/service-email:${TAG}
- docker-compose --project-name service-email-${TAG} up -d - docker-compose --project-name service-email-${TAG} up -d --force-recreate
environment:
name: staging
\ No newline at end of file
FROM node:8 FROM node:8-alpine
# Create app directory # Create app directory
WORKDIR /app WORKDIR /app
... ...
......
version: '3.1' version: "3.1"
services: services:
service-email:
container_name: service-email-${TAG} mail-service:
build: . build: .
image: registry.alpha.grandlyon.com/refonte-data/service-email:${TAG} image: registry.alpha.grandlyon.com/refonte-data/service-email:${TAG}
ports: ports:
- ${DEV_SERVICE_EMAIL_PORT}:3000 - ${MAIL_SERVICE_BIND_PORT}:3000
environment: environment:
- NODE_ENV=${NODE_ENV} - USER_SUPPORT_MAILBOX=${USER_SUPPORT_MAILBOX}
- PLATEFORM_DATA_EMAIL=${DEV_PLATEFORM_DATA_EMAIL} - RABBITMQ_USER=rabbitmq-user
- RABBITMQ_USER=${DEV_RABBITMQ_USER} - RABBITMQ_PASSWORD=${RABBITMQ_PASSWORD}
- RABBITMQ_PASSWORD=${DEV_RABBITMQ_PASSWORD}
- GROUP_HEADER=x-consumer-groups - GROUP_HEADER=x-consumer-groups
- EMAIL_WRITER_GROUP_NAME=email-writer - EMAIL_WRITER_GROUP_NAME=email-writer
restart: unless-stopped restart: unless-stopped
rabbitmq: rabbitmq:
image: 'rabbitmq:3-management-alpine' image: rabbitmq:3-management-alpine
container_name: rabbitmq-${TAG}
ports: ports:
- ${DEV_RABBITMQ_STANDARD_PORT}:5672 # standard port for communication # - ${RABBITMQ_LISTENING_PORT}:5672 # standard port for communication
- ${DEV_RABBITMQ_INTERFACE_PORT}:15672 # graphique interface - ${RABBITMQ_GUI_PORT}:15672 # graphic interface
environment: environment:
- RABBITMQ_DEFAULT_USER=${DEV_RABBITMQ_USER} - RABBITMQ_DEFAULT_USER=rabbitmq-user
- RABBITMQ_DEFAULT_PASS=${DEV_RABBITMQ_PASSWORD} - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}
volumes: volumes:
- rabbitmqPersistence:/var/lib/rabbitmq - rabbitmq-data-volume:/var/lib/rabbitmq
restart: unless-stopped restart: unless-stopped
volumes: volumes:
rabbitmqPersistence: rabbitmq-data-volume:
\ No newline at end of file
{ {
"name": "service-email", "name": "service-email",
"version": "0.0.0", "version": "1.0.0",
"description": "description", "description": "description",
"author": "", "author": "",
"license": "MIT", "license": "MIT",
... ...
......
...@@ -20,7 +20,7 @@ export class ConfigService { ...@@ -20,7 +20,7 @@ export class ConfigService {
// Initializing conf with values from var env // Initializing conf with values from var env
this._config.rabbitMQ.user = process.env.RABBITMQ_USER; this._config.rabbitMQ.user = process.env.RABBITMQ_USER;
this._config.rabbitMQ.password = process.env.RABBITMQ_PASSWORD; this._config.rabbitMQ.password = process.env.RABBITMQ_PASSWORD;
this._config.plateformDataEmail = process.env.PLATEFORM_DATA_EMAIL; this._config.userSupportMailbox = process.env.USER_SUPPORT_MAILBOX;
this._config.groupNames.emailWriter = process.env.EMAIL_WRITER_GROUP_NAME; this._config.groupNames.emailWriter = process.env.EMAIL_WRITER_GROUP_NAME;
this._config.groupHeader = process.env.GROUP_HEADER; this._config.groupHeader = process.env.GROUP_HEADER;
} }
... ...
......
...@@ -6,7 +6,7 @@ export const config = { ...@@ -6,7 +6,7 @@ export const config = {
port: '5672', port: '5672',
}, },
mailerQueue: 'portail-data-send-email', mailerQueue: 'portail-data-send-email',
plateformDataEmail: '', userSupportMailbox: '',
imageHost: 'https://highway-to-data.alpha.grandlyon.com/email-template-assets', imageHost: 'https://highway-to-data.alpha.grandlyon.com/email-template-assets',
groupNames: { groupNames: {
emailWriter: '', emailWriter: '',
... ...
......
RABBITMQ_USER= RABBITMQ_USER=
RABBITMQ_PASSWORD= RABBITMQ_PASSWORD=
PLATEFORM_DATA_EMAIL= USER_SUPPORT_MAILBOX=
\ No newline at end of file \ No newline at end of file
...@@ -36,7 +36,7 @@ export class EmailService { ...@@ -36,7 +36,7 @@ export class EmailService {
}); });
const adminEmail = new EmailWithoutFrom(); const adminEmail = new EmailWithoutFrom();
adminEmail.to = [this.config.plateformDataEmail]; adminEmail.to = [this.config.userSupportMailbox];
adminEmail.replyTo = contactForm.email; adminEmail.replyTo = contactForm.email;
adminEmail.subject = contactForm.subject; adminEmail.subject = contactForm.subject;
adminEmail.html = adminEmailBody; adminEmail.html = adminEmailBody;
...@@ -73,7 +73,7 @@ export class EmailService { ...@@ -73,7 +73,7 @@ export class EmailService {
imageHost: this.config.imageHost, imageHost: this.config.imageHost,
}); });
const feedbackEmail = new EmailWithoutFrom(); const feedbackEmail = new EmailWithoutFrom();
feedbackEmail.to = [this.config.plateformDataEmail]; feedbackEmail.to = [this.config.userSupportMailbox];
feedbackEmail.subject = 'Feedback'; feedbackEmail.subject = 'Feedback';
feedbackEmail.html = feedbackEmailBody; feedbackEmail.html = feedbackEmailBody;
...@@ -89,7 +89,7 @@ export class EmailService { ...@@ -89,7 +89,7 @@ export class EmailService {
const mailerQueue = this.config.mailerQueue; const mailerQueue = this.config.mailerQueue;
let email = new Email(); let email = new Email();
email.from = this.config.plateformDataEmail; email.from = this.config.userSupportMailbox;
email = Object.assign(email, emailInfo); email = Object.assign(email, emailInfo);
Logger.log('[-] send method'); Logger.log('[-] send method');
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment