Utiliser Symfony dans Docker

Fichier Dockerfile

FROM php:7.4-fpm-alpine

# Apk install
RUN apk --no-cache update && apk --no-cache add bash git

# Install pdo
RUN docker-php-ext-install pdo_mysql

# Install composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php composer-setup.php && php -r "unlink('composer-setup.php');" && mv composer.phar /usr/local/bin/composer

# Symfony CLI
RUN wget https://get.symfony.com/cli/installer -O - | bash && mv /root/.symfony/bin/symfony /usr/local/bin/symfony

WORKDIR /var/www/html

Fichier docker-compose.yml

version: '3.3'

services:
  php-fpm:
    build: ./
    ports:
      - 5000:8000
    volumes:
      - ./:/var/www/html
  mysql:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: test
  phpmyadmin:
    depends_on:
      - mysql
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: mysql

Monter l’image

  • docker-compose up -d
  • docker ps
  • docker exec -ti id-image-symfony5_php-fpm bash

Télécharger Symfony

Dans l’image Docker, via le bash :

Lancer le serveur interne de Symfony

Dans l’image Docker, via le bash :

  • cd mon_projet
  • symfony server:start

Connexion Symfony – MySQL : fichier .env

DATABASE_URL=mysql://root:root@mysql:3306/test?serverVersion=5.7

phpMyAdmin

Pour accéder à phpMyAdmin :

  • url : http://192.168.99.100:8080/
  • login : root
  • mot de passe : root

Page d’accueil projet Symfony

Pour accéder au projet Symfony :

  • url : http://192.168.99.100:5000

Quelques commandes Symfony

  • php bin/console make:entity
  • php bin/console make:migration
  • php bin/console doctrine:migrations:migrate

Stopper l’image

docker-compose down

Ailleurs sur le web