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 2 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.frankenphp.yml est tel :
services:
myphp:
container_name: dev_myeureka_php
restart: always
build: .docker/frankenphp
ports:
- 80:80 # HTTP
- 443:443 # HTTPS
- 443:443/udp # HTTP/3
volumes:
- ./:/app
- /samba:/samba
- caddy_data:/data
- caddy_config:/config
environment:
ENVIRONMENT: FRANKEN_PHP
SERVER_NAME: ${SERVER_NAME:-localhost}, php:80
TRUSTED_PROXIES: ${TRUSTED_PROXIES:-127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16}
TRUSTED_HOSTS: ^${SERVER_NAME:-example\.com|localhost}|php$$
# Run "composer require symfony/orm-pack" to install and configure Doctrine ORM
# The two next lines can be removed after initial installation
SYMFONY_VERSION: ${SYMFONY_VERSION:-}
tty: true
links:
- mydatabase
extra_hosts:
- host.docker.internal:host-gateway
volumes:
caddy_data:
caddy_config:
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
FrankenPHP
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 4 volumes de la machine hôte:
- 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
./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 fichier
./caddy_dataen tant que/datadans le container. Il s'agit d'un dossier pour le bon fonctionnement de Caddy. - Le fichier
./caddy_configen tant que/configdans le container. Il s'agit d'un dossier pour le bon fonctionnement de Caddy.
- Le dossier
- Le plus important est la clé "build", celle-ci indique que dans
.docker/frankenphpse trouve un Dockerfile
Sa première ligne indique l'image utilisée dunglas/frankenphp:1.4-php8.2-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 d'outils commpe NPM, Git..
- 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