env-docker-compose

Un environnement de PHP à toute épreuve

Spread the love

Pour être bien vu par votre client, vous devez être prêt à travailler rapidement sur son projet.
C’est là que docker entre en jeu pour avoir un environnement PHP flexible. Chaque projet client a sa propre complexité, vous devez donc être flexible, sans pour autant ruiner votre machine en installant 40 logiciels différents.

docker-compose redis php mysql nginx npm
L’écosystème « classique »

Préparation de l’environnement

J’ai déjà fait un article sur le sujet que vous pouvez retrouver ici Plus loin avec Symfony et docker.
L’idée étant de partir d’un environnement que vous maîtrisez.
La problématique c’est que tout le monde a un « legacy ».

Chez nous il y a apache avec un .htaccess, qui redirige les requêtes vers React.

Nous utilisons un script en GO pour la génération des fichiers.

Bref, c’est différent chez tout le monde.

Les choses qui changent

La configuration Redis

Je pense qu’avec les articles Un mot de passe Redis via docker-compose et Les sentinelles Redis avec docker-compose vous êtes prêts pour ce cas 😉

La base de données

C’est un élément super simple à changer. Certains clients ont une DB centralisée, d’autres une DB locale.
Le changement de MySQL -> Postgresql très simple dans votre fichier docker-compose

services:
  db:
    image: postgres
    environment:
      POSTGRES_USER: ${DB_USER}
      POSTGRES_PASSWORD: ${DB_PASS}
      db-volume:/data/postgres

La partie front

Sauf la version de npm, pour cette partie, rien à faire. Sauf si votre client utilise yarn.

npm install --global yarn

Le serveur web

Pour le moment, j’ai toujours réussi à éviter l’installation d’apache. Mais il y a toujours des choses à faire. Des headers spéciaux, des redirections ou un nom de domaine local spécifique.

nginx:
        image: kiora/nginx:sf4-3
        ports:
            - ${NGNIX_PORT}:80
            - 443:443
        depends_on:
            - tools
        volumes:
            -./client.conf:/etc/nginx/conf.d/client.conf

Vous pouvez monter la config spécifique de votre client.

Voila, vous êtes prêts ! Vous avez un environnement PHP à éprouver 😁

chevron_left
chevron_right

Laisser un commentaire

%d blogueurs aiment cette page :