| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- version: '3.8'
- networks:
- private:
- web:
- external: true
- name: web
- volumes:
- mongo_data_prod:
- driver: local
- driver_opts:
- type: none
- o: bind
- device: /srv/mongo/data_prod # Comme en préprod, pour cohérence et persistance
- mongo_backups_prod:
- driver: local
- services:
- express_prod:
- build:
- context: ./express-server
- networks:
- - web
- - private
- expose: # Remplace les "ports" pour éviter de lier sur l’hôte et éviter les conflits
- - "4000"
- labels:
- - traefik.enable=true
- - traefik.http.routers.express_prod.rule=Host(`api-prod.foodgame.fr`)
- - traefik.http.services.express_prod.loadbalancer.server.port=4000
- - traefik.http.routers.express_prod.entrypoints=websecure
- - traefik.http.routers.express_prod.tls.certresolver=myresolver
- depends_on:
- - database_prod
- environment:
- - MONGODB_URI=mongodb://admin:azerty10@database_prod:27017/mean-fatboar-db?authSource=admin
- restart: unless-stopped
- database_prod:
- image: mongo:4.4.6
- volumes:
- - ./backup:/backup
- - mongo_data_prod:/data/db
- environment:
- - MONGO_INITDB_ROOT_USERNAME=admin
- - MONGO_INITDB_ROOT_PASSWORD=azerty10
- - MONGO_INITDB_DATABASE=mean-fatboar-db
- networks:
- - private
- restart: unless-stopped
- mongodb-backup-prod:
- image: tiredofit/mongodb-backup:latest
- container_name: mongodb-backup-prod
- volumes:
- - mongo_backups_prod:/backup
- environment:
- - MONGODB_HOST=database_prod
- - MONGODB_PORT=27017
- - MONGODB_USER=admin
- - MONGODB_PASS=azerty10
- - MONGODB_AUTHENTICATION_DATABASE=admin
- - BACKUP_LOCATION=/backup
- - BACKUP_COMPRESSION=GZIP
- - BACKUP_SPLIT_DB=TRUE
- - BACKUP_BEGIN=TRUE
- - SCHEDULE=0 3 * * * # Sauvegarde quotidienne à 3h
- - BACKUP_RETAIN_DAYS=7
- - BACKUP_CLEANUP_TIME=0430
- - NOTIFICATION_TYPE=email
- - NOTIFICATION_EMAIL_TO=admin@foodgame.fr
- - DEBUG_MODE=FALSE
- depends_on:
- - database_prod
- networks:
- - private
- restart: unless-stopped
- angular_ssr_prod:
- build:
- context: ./
- dockerfile: build/docker/angular-ssr/Dockerfile
- networks:
- - web
- - private
- expose:
- - "4000"
- labels:
- - traefik.enable=true
- - traefik.http.routers.angular_ssr_prod.rule=Host(`fatboar.foodgame.fr`)
- - traefik.http.services.angular_ssr_prod.loadbalancer.server.port=4000
- - traefik.http.routers.angular_ssr_prod.entrypoints=websecure
- - traefik.http.routers.angular_ssr_prod.tls.certresolver=myresolver
- restart: unless-stopped
- # version: '3.8'
- # networks:
- # private:
- # web:
- # external: true
- # name: web
- # volumes:
- # mongo_data_prod:
- # mongo_backups_prod:
- # services:
- # express_prod:
- # build:
- # context: ./express-server
- # networks:
- # - web
- # - private
- # expose:
- # - "4000"
- # labels:
- # - traefik.enable=true
- # - traefik.http.routers.express_prod.rule=Host(`api-prod.foodgame.fr`)
- # - traefik.http.services.express_prod.loadbalancer.server.port=4000
- # - traefik.http.routers.express_prod.entrypoints=websecure
- # - traefik.http.routers.express_prod.tls.certresolver=myresolver
- # depends_on:
- # - database_prod
- # environment:
- # - MONGODB_URI=mongodb://admin:azerty10@database_prod:27017/mean-fatboar-db?authSource=admin
- # restart: unless-stopped
- # database_prod:
- # image: mongo:4.4.6
- # volumes:
- # - mongo_data_prod:/data/db
- # - ./backup:/backup
- # environment:
- # - MONGO_INITDB_ROOT_USERNAME=admin
- # - MONGO_INITDB_ROOT_PASSWORD=azerty10
- # - MONGO_INITDB_DATABASE=mean-fatboar-db
- # networks:
- # - private
- # restart: unless-stopped
- # mongodb-backup-prod:
- # image: tiredofit/mongodb-backup:latest
- # container_name: mongodb-backup-prod
- # volumes:
- # - mongo_backups_prod:/backup
- # environment:
- # - MONGODB_HOST=database_prod
- # - MONGODB_PORT=27017
- # - MONGODB_USER=admin
- # - MONGODB_PASS=azerty10
- # - MONGODB_AUTHENTICATION_DATABASE=admin
- # - BACKUP_LOCATION=/backup
- # - BACKUP_COMPRESSION=GZIP
- # - BACKUP_SPLIT_DB=TRUE
- # - BACKUP_BEGIN=TRUE
- # - SCHEDULE=0 3 * * * # Sauvegarde tous les jours à 3h du matin
- # - BACKUP_RETAIN_DAYS=7
- # - BACKUP_CLEANUP_TIME=0430
- # - NOTIFICATION_TYPE=email
- # - NOTIFICATION_EMAIL_TO=admin@foodgame.fr
- # - DEBUG_MODE=FALSE
- # depends_on:
- # - database_prod
- # networks:
- # - private
- # restart: unless-stopped
- # angular_ssr_prod:
- # build:
- # context: ./ # Racine Angular
- # dockerfile: build/docker/angular-ssr/Dockerfile
- # networks:
- # - web
- # - private
- # expose:
- # - "4000"
- # labels:
- # - traefik.enable=true
- # - traefik.http.routers.angular_ssr_prod.rule=Host(`fatboar.foodgame.fr`)
- # - traefik.http.services.angular_ssr_prod.loadbalancer.server.port=4000
- # - traefik.http.routers.angular_ssr_prod.entrypoints=websecure
- # - traefik.http.routers.angular_ssr_prod.tls.certresolver=myresolver
- # restart: unless-stopped
-
- # apache_prod:
- # build:
- # context: ./
- # dockerfile: build/docker/apache/Dockerfile
- # ports:
- # - "8080:80"
- # networks:
- # - web
- # - private
- # volumes:
- # - /var/log:/var/log/apache2
- # labels:
- # - traefik.enable=true
- # - traefik.http.routers.apache_prod.rule=Host(`fatboar.foodgame.fr`)
- # - traefik.http.services.apache_prod.loadbalancer.server.port=80
- # - traefik.http.routers.apache_prod.entrypoints=websecure
- # - traefik.http.routers.apache_prod.tls.certresolver=myresolver
- # restart: always
- # version: '3.0' # specify docker-compose version
-
- # Define the services/ containers to be run
- # services:
- # angular: # name of the first service
- # build: angular-client # specify the directory of the Dockerfile
- # ports:
- # - "4200:4200" # specify port mapping
-
- # express: # name of the second service
- # build: express-server # specify the directory of the Dockerfile
- # ports:
- # - "9991:9991" #specify ports mapping
- # links:
- # - database # link this service to the database service
-
- # database: # name of the third service
- # image: mongo # specify image to build container from
- # ports:
- # - "27017:27017" # specify port forwarding
- # version: '3'
- # networks:
- # private:
- # web:
- # external:
- # name: web
- # #pipeline-test-mean-stack-docker_default:
- # #pipeline-test-mean-stack-docker_private:
- # #grafana:
- # volumes:
- # # app_data: {}
- # mongo_data_prod:
- # services:
- # express_prod:
- # build:
- # context: ./express-server
- # ports:
- # - "4000:4000"
- # networks:
- # - web
- # - private
- # labels:
- # - traefik.enable=true
- # - traefik.http.routers.express_prod.rule=Host(`api-prod.foodgame.fr`)
- # - traefik.http.services.express_prod.loadbalancer.server.port=4000
- # - traefik.http.routers.express_prod.entrypoints=websecure
- # - traefik.http.routers.express_prod.tls.certresolver=myresolver
- # links:
- # - database_prod
- # restart: always
- # database_prod:
- # # container_name: mongo_"${ENV}"
- # image: mongo:4.4.6
- # ports:
- # - "27017:27017"
- # volumes:
- # - ./backup:/backup
- # - mongo_data_prod:/data/db
- # # - /var/lib/mongodb/data_prod:/data/db
- # # - database:/data/database
- # labels:
- # - traefik.enable=true
- # - traefik.http.routers.database_prod.rule=Host(`mongodb-prod.foodgame.fr`)
- # # - traefik.http.routers.apache_prod.rule=Host(`${URLMONGO}`)
- # - traefik.http.services.database_prod.loadbalancer.server.port=27017
- # - traefik.http.routers.database_prod.entrypoints=websecure
- # - traefik.http.routers.database_prod.tls.certresolver=myresolver
- # networks:
- # - web
- # - private
- # #- pipeline-test-FatboarProject_default
- # #- pipeline-test-FatboarProject_private
- # restart: always
- # apache_prod:
- # # container_name: apache_"${ENV}"
- # build:
- # context: ./
- # # dockerfile: build/docker/httpd/Dockerfile
- # dockerfile: build/docker/apache/Dockerfile
- # ports:
- # - "8080:80"
- # networks:
- # - web
- # - private
- # #- pipeline-test-FatboarProject_default
- # #- pipeline-test-FatboarProject_private
- # volumes:
- # - /var/log:/var/log/apache2
- # labels:
- # - traefik.enable=true
- # - traefik.http.routers.apache_prod.rule=Host(`fatboar.foodgame.fr`)
- # # - traefik.http.routers.apache_prod.rule=Host(`${URLANGULAR}`)
- # - traefik.http.services.apache_prod.loadbalancer.server.port=80
- # - traefik.http.routers.apache_prod.entrypoints=websecure
- # - traefik.http.routers.apache_prod.tls.certresolver=myresolver
- # restart: always
-
|