Todos los artículos

Configura tu entorno local de Symfony 5 con Docker

Configurando nuestro entorno de desarrollo para Symfony 5 con Docker.

Requisitos

  • Docker

Instalación

  • Crea una carpeta donde guardarás tu proyecto.

    mkdir ~/test
  • Entra en la carpeta.

    cd ~/test
  • Crea un archivo docker-compose.yml en esa carpeta con este contenido.

    version: "3.4"
    
    services:
      php:
        image: webcu/symfony-installer:latest
        restart: always
        working_dir: /symfony
        volumes:
          - .:/symfony
        command: tail -f /dev/null
        ports: 
            - 8000:8000
        environment:
          XDEBUG_HOST_SETTING: host.docker.internal
          PHP_IDE_CONFIG: "serverName=localhost"
  • Inicia el contenedor.

    docker-compose up -d
  • Entra en el contenedor.

    docker-compose exec php bash
  • Crea un nuevo proyecto Symfony.

    symfony new test-project
    • Si quieres evitar el aviso sobre tu identidad de Git, puedes añadir tu configuración de Git al contenedor agregando esta línea a docker-compose.yml:

      volumes:
          ...
        # To add your git info to the container
        - ~/.gitconfig:/etc/gitconfig

      Si añadiste .gitconfig después de crear el contenedor, no olvides volver a crearlo ;).

      # Exit your container 
      root@4725a7a23464:/symfony exit
      
      # Recreate your container
      docker-compose up -d --force-recreate
      
      # Enter the new container
      docker-compose exec php bash
      
      # Create a new Symfony project
      symfony new test-project
  • Inicia el servidor web integrado de PHP.

    php -S 0.0.0.0:8000 -t test-project/public
    • php -S 0.0.0.0:8000

      Permite acceder al servidor web desde fuera del contenedor.

    • -t test-project/public

      Especifica la raíz de documentos del servidor.

    Para más información sobre el servidor web integrado de PHP, consulta su documentación:

    PHP: servidor web integrado - Manual

  • Disfruta de tu nuevo y reluciente proyecto Symfony visitando:

    http://localhost:8000

  • ¡Empieza a escribir tu increíble aplicación!

Detalles de la imagen Docker

Para simplificar la creación del entorno de desarrollo de Symfony con Docker, creé una imagen basada en las imágenes oficiales de PHP. Incluye algunas funcionalidades y extensiones necesarias o recomendadas para Symfony 5:

  • OPCache
  • Xdebug
  • Intl
  • Composer
  • Instalador de Symfony

Puedes encontrarla en Docker Hub. Para utilizarla debes referenciarla en tu archivo docker-compose.yml:

services:
    php:
        image: webcu/symfony-installer
        ...

Consejos sobre Dockerfile relacionados con PHP

  • Usa las imágenes oficiales de PHP.

    Un gran equipo trabaja para hacerlas lo mejor posible.

  • Usa los scripts auxiliares docker-php-ext-configure,docker-php-ext-install, docker-php-ext-enable. Están disponibles en las imágenes oficiales de PHP para instalar extensiones con mayor facilidad.

  • Para añadir una configuración de desarrollo de PHP, agrega esta línea a tu Dockerfile:

    ...
    RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
    ...
  • Añade tu configuración personalizada de php.ini.

    Configura sus opciones según tus necesidades.

  • Consulta este proyecto si no quieres encargarte directamente de instalar las extensiones de PHP:

    mlocati/docker-php-extension-installer

Referencias