Compose
Attention
Pour tous les développeurs, le fichier compose.yml est susceptible de changer, il serait alors judicieux de maintenir cette page à jour au possible.
Comme évoqué dans l'Initialisation, Docker a dû télécharger 3 images.
Lors de la creation de MyDocusaurus, le fichier compose.yml est tel :
name: myeureka
services:
mydatabase:
container_name: dev_myeureka_db
image: postgres:12-alpine
environment:
POSTGRES_DB: myeureka_sf6
POSTGRES_PASSWORD: admin
POSTGRES_USER: postgres
database:
ports:
- 8112:5432
volumes:
- dev_db_myeureka_data:/var/lib/postgresql/data
- ./restore.tar:/restore.tar
volumes:
dev_db_myeureka_data:
Ainsi que le fichier compose.nginxfpm.yml est tel :
services:
myserver:
image: nginx:latest
container_name: dev_myeureka_nginx
restart: always
ports:
- 80:80
volumes:
- ./public:/var/www/app/public
- ./.docker/nginx/config/app.dev.conf:/etc/nginx/conf.d/default.conf
links:
- myphp
myphp:
build: .docker/php-fpm
container_name: dev_myeureka_php
volumes:
- .:/var/www/app:cached
- /samba:/samba
# - ./.docker/php-fpm/config/xdebug.ini:/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
# - ./.docker/php-fpm/config/error_reporting.ini:/usr/local/etc/php/conf.d/error_reporting.in
environment:
ENVIRONMENT: NGINX_PHPFPM
links:
- mydatabase
extra_hosts:
- host.docker.internal:host-gateway
La base de données PostgreSQL
Il y a 4 informations a retenir pour ce container:
- Son nom : dev_myeureka_db
- Le container va se baser sur une image déjà existante : postgre:12-alpine, rien de plus ici non plus.
- Quelques variables d'environnement sont définies ici, ces 3 là serviront au container de créer une BDD par défaut, avec un utilisateur et son mot de passe comme indiqués.
- Docker va lui partager 2 volumes de la machine hôte:
- Le fichier
./restore.taren tant que/restore.tardans le container. Il s'agit d'un dump qui vous facilitera les rafraichissement de donnée avec la commandemake refresh-db, à vous de le créer. - Le volume nommé
dev_db_myeureka_data, c'est Docker qui se charge de sa gestion, avec ce volume, les données enregstrées par votre application locale sont persistantes, sans ce volume, si le container s'arrête, les données sont perdues.
- Le fichier
Le serveur web NGINX
Il y a 4 informations a retenir pour ce container:
- Son nom : dev_myeureka_nginx
- Le container va se baser sur une image déjà existante : nginx:latest, rien de plus.
- Docker va lui partager 2 volumes de la machine hôte:
- Le fichier
./.docker/nginx/config/app.dev.confen tant que/etc/nginx/conf.d/default.confdans le container. Il s'agit du fichier de configuration du serveur Nginx. - Le dossier
./publicau chemin/var/www/app/publicdans le container. Il s'agit des assets public devant être accessible au client, les images, le style etc..
- Le fichier
- La communication avec le container PHP se fait dans la clé "links", où est précisé myphp.
Le langage PHP
Il y a 4 informations a retenir pour ce container:
- Son nom : dev_myeureka_php
- La communication avec le container PostgreSQL se fait dans la clé "links", où est précisé mydatabase.
- Docker va lui partager 2 volumes de la machine hôte:
- Le fichier
./sambaen tant que/sambadans le container. Il s'agit d'un dossier où l'application enregistrera les fichiers XML de production des professionnels de santé à destination du logiciel JAS sur lequel fonctionnent les Robots vendu par Robotik Technology. - Le dossier
.au chemin/var/www/app:cacheddans le container. Il s'agit d'un volume pour le cache de l'application, toujours pour ne pas le regénérer si les containers sont coupés entre temps.
- Le fichier
- Le plus important est la clé "build", celle-ci indique que dans
.docker/php-fpmse trouve un Dockerfile
Sa première ligne indique l'image utilisée php:8.2-fpm-alpine
Le reste est une suite de commande à réaliser telle qu'elles seraient executéés sur un terminal.
Nous avons entre autres : \- L'installation de différentes extensions PHP (xsl, soap, zip, pdo..)
- L'installation de Composer
- L'installation de Oh My Zsh et de son thème, pour plus de style lors des accès au container