Mise à jour stack (PHP 8.1, Symfony 6.1, .env, TLD)
Changements
TLD
.local
devient .localhost
(cf #3)
Fichiers .env.*
.env
en 2 fichiers (.env
& .env.local
)
Séparation du -
.env
: toutes les variables utilisées par docker, docker-compose et docker-sync -
.env.local
: toutes les variables Symfony
Pourquoi cette séparation ?
- Nous nous approchons plus des bonnes pratiques Symfony
- Cela devient indispensable lorsque nous voulons mettre en place des tests unitaire ou fonctionnels (par exemple via Panther)
.env.rancher.*
- Ils ont été renommés en
.env.prod.*
pour ne plus qu'ils soit "liés" à Rancher - 2 fichiers sont maintenant générées automatiquement (depuis les fichiers
.env.dist
et.env.local.dist
) lors de la 1er création du projet : - .env.prod.develop
- .env.prod.release
- Une nouvelle variable Gitlab
DEPLOY_HOST
doit être créée pour chaque environnement de déploiement (cf README.md) - L'authentification NGINX (Basic Auth) est par défaut activée dans les fichiers
.env.prod.*
Reverse proxy
- Ajout config pour utilisation de Traefik
- (Si la config base-docker-tools v2 est activer lors de l'installation du projet) La stack nécessitera maintenant qu'un des reverse proxy (nginx-proxy ou traefik) de la "base docker tools" soit up avant de pouvoir démarrer
Conteneur "database"
Quelque fois, lors de la 1ère installation, le conteneur "app" démarrait alors que celui de la base de données n'était pas encore réellement prêt et cela produisait donc une erreur. Cela est maintenant corrigé grâce au "healthcheck" :
database:
image: mysql:5.7
container_name: ${COMPOSE_PROJECT_NAME}-database
environment:
- MYSQL_DATABASE=${DB_DATABASE}
- MYSQL_USER=${DB_USER}
- MYSQL_PASSWORD=${DB_PASSWORD}
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
volumes:
- ./var/docker/mysql:/var/lib/mysql
healthcheck:
test: ["CMD", 'mysqladmin', 'ping', '-h', 'localhost', '-u', '$$DB_USER', '-p$$DB_PASSWORD' ]
timeout: 20s
retries: 6
Makefile
Séparation du Makefile en plusieurs fichiers
Cela permet de mieux s'y retrouver et cela facilitera les futurs màj (par ex pour suive les évols de la stack)
EDIT : finalement la facilité de lecture faisait perdre l'autocompletion ce qui a été jugé plus pertinent. On reste donc pour l'instant sur un mode de fonctionnement avec un fichier unique
Configuration dynamique de la stack lors de l'installation
Plus besoin de modifier manuellement le fichier docker-compose.override.yml.dist pour l'utilisation de docker-sync ou de la base-docker-tools v2. Les question sont posées lors de l'instant du projet et le fichier est généré en conséquence. (choix par défaut : pas de docker-sync et base-docker-tools v1)
Procédure d'installation simplifiée
La procédure d'installation du projet a été réécrite dans le README afin de permettre d'éviter plusieurs commits initiaux et pour faire en sorte que les premiers déploiements sur Rancher soient automatiques et non plus déclenchés manuellement.
Closes #3, #8, #6, #5, !7 (closed)