Skip to content

Mise à jour stack (PHP 8.1, Symfony 6.1, .env, TLD)

Wahib LAROUI requested to merge feature/sf61 into master

Changements

TLD

.local devient .localhost (cf #3)

Fichiers .env.*

Séparation du .env en 2 fichiers (.env & .env.local)

  • .env : toutes les variables utilisées par docker, docker-compose et docker-sync
  • .env.local : toutes les variables Symfony

Pourquoi cette séparation ?

  1. Nous nous approchons plus des bonnes pratiques Symfony
  2. 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)

image

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)

image

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)

Edited by Romain Guerrero

Merge request reports

Loading