Skip to content
Extraits de code Groupes Projets
Valider 31e9a589 rédigé par Frédéric Minne's avatar Frédéric Minne
Parcourir les fichiers

livraison: add missing yaml examples

parent f542f549
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -317,10 +317,106 @@ PORTAL_VPORT=80
```
J'ai créé pour la pile applicative un fichier docker-compose.yml de base reprenant les directives et options communes à tous les environnements.
J'ai créé pour la pile applicative un fichier docker-compose.yml de base reprenant les directives et options communes à tous les environnements.
```yaml
version: '3.7'
services:
webserver:
image: nginx:latest
depends_on:
- "php-fpm"
command: ["/bin/wait-for-it.sh", "php-fpm:9000", "--", "nginx", "-g", "daemon off;"]
env_file:
- docker/nginx/nginx.env
- .env
working_dir: /var/www/portail-next
volumes:
- ./var/www/portail-next:/var/www/portail-next/
- ./docker/wait-for-it.sh:/bin/wait-for-it.sh
- ./docker/nginx/conf.d:/etc/nginx/conf.d
- ./docker/nginx/sites:/etc/nginx/sites-enabled
- ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf
php-cli:
image: private-registry:5000/drupal_phpfpm81:latest
build:
context: ./docker/php-fpm
dockerfile: dockerfile
cache_from:
- private-registry:5000/drupal_phpfpm81:latest
env_file:
- docker/php-fpm/php-fpm.env
- .env
working_dir: /var/www/portail-next
volumes:
- ./docker/php-fpm/php-ini-overrides.ini:/etc/php/8.1/fpm/conf.d/99-overrides.ini
- ./var/www/portail-next:/var/www/portail-next/
- ./bin:/var/www/portail-next/bin
command: ["tail", "-f", "/dev/null"]
php-fpm:
image: private-registry:5000/drupal_phpfpm81:latest
build:
context: ./docker/php-fpm
dockerfile: dockerfile
cache_from:
- private-registry:5000/drupal_phpfpm81:latest
env_file:
- docker/php-fpm/php-fpm.env
- .env
working_dir: /var/www/portail-next
volumes:
- ./docker/php-fpm/php-ini-overrides.ini:/etc/php/8.1/fpm/conf.d/99-overrides.ini
- ./var/www/portail-next:/var/www/portail-next/
- ./bin:/var/www/portail-next/bin
```
Ensuite, pour chaque valeur d'environnement spécifique SWARM_ENV et chaque topologie SWARM_TOPO, j'ai fourni un fichier `environments/<SWARM_ENV>/docker-compose.<SWARM_TOPO>.yml` contenant les directives et options spécifiques à chaque environnement.
```yaml
# environments/prod/docker-compose.multi.yml
version: '3.7'
services:
webserver:
deploy:
mode: global
placement:
constraints:
- node.role!=manager
networks:
- portail_ntwrk
- proxy_public
volumes:
- /portail-data:/var/www/portail-next/web/sites/default/files/private
php-cli:
deploy:
replicas: 1
placement:
constraints:
- node.role==manager
networks:
- portail_ntwrk
volumes:
- /portail-data:/var/www/portail-next/web/sites/default/files/private
php-fpm:
deploy:
mode: global
placement:
constraints:
- node.role!=manager
networks:
- portail_ntwrk
volumes:
- /portail-data:/var/www/portail-next/web/sites/default/files/private
networks:
portail_ntwrk:
driver: overlay
attachable: true
proxy_public:
name: proxy_public
external: true
```
Enfin, j'ai créé une commande Bash (mais cela aurait pu être fait avec une commande ansible également) permettant de créer les piles applicatives, les démarrer et les arrêter en se basant sur les variables d'environnement définies pour sélectionner les bons fichiers de définition de pile.
En pratique, la personne devant déployer l'application n'a plus qu'à définir les variables correspondant à l'environnement sur lequel il ou elle effectue le déploiement dans un fichier nommé `.env` et situé à la racine du répertoire de son instance du portail. Il lui suffit ensuite d'exécuter le script permettant la création de la pile et de lancer celle-ci.
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter