Como integrar o Docker com o Symfony: viabilizando um ambiente de desenvolvimento leve e portátil
O Symfony é um dos frameworks mais populares em PHP, usado para desenvolver aplicações web complexas e robustas. Já o Docker é uma plataforma para desenvolver, enviar e executar aplicativos em contêineres. A integração entre essas duas ferramentas pode trazer muitos benefícios para o desenvolvimento de projetos, principalmente em relação à rapidez e portabilidade do ambiente de desenvolvimento.
O que é o Docker?
O Docker é uma plataforma que permite criar e executar aplicativos em contêineres isolados, que podem ser facilmente distribuídos e executados em diferentes ambientes. Cada contêiner é uma unidade independente, que contém todos os recursos necessários para executar um aplicativo, como dependências, bibliotecas, arquivos de configuração, etc.
Com o Docker, é possível criar um ambiente de desenvolvimento isolado do sistema operacional do computador, sem a necessidade de instalar todas as dependências e ferramentas manualmente. Isso torna o processo de desenvolvimento mais fácil e rápido, e permite que os desenvolvedores trabalhem em diferentes plataformas sem problemas de compatibilidade.
Como integrar o Docker com o Symfony?
Para integrar o Docker com o Symfony, é necessário seguir alguns passos simples:
- Crie um arquivo Dockerfile no diretório raiz do seu projeto Symfony, contendo as instruções para criar a imagem Docker. Por exemplo:
- Crie um arquivo docker-compose.yml para definir o ambiente de desenvolvimento completo. Por exemplo:
- Execute o comando ‘docker-compose up’ no terminal para criar e executar os contêineres.
FROM php:7.4-fpm
# Instala as dependências do Symfony
RUN apt-get update \ && apt-get install -y --no-install-recommends \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
# Copie o diretório do seu projeto para o diretório de trabalho
COPY . /var/www/html
# Defina o diretório de trabalho
WORKDIR /var/www/html
# Instale as dependências do Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer \
&& composer install
# Exponha a porta 9000
EXPOSE 9000
# Inicie o servidor PHP-FPM
CMD ["php-fpm"]
Esse arquivo Dockerfile define uma imagem Docker baseada na versão 7.4 do PHP, instala as dependências do Symfony, copia o diretório do projeto para o contêiner, instala as dependências do Composer, expõe a porta 9000 e inicia o servidor PHP-FPM.
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: example
php:
build:
context: .
volumes:
- .:/var/www/html
ports:
- "8000:8000"
depends_on:
- db
webserver:
image: nginx:alpine
ports:
- "80:80"
volumes:
- .:/var/www/html
- .docker/nginx/conf.d:/etc/nginx/conf.d
depends_on:
- php
Esse arquivo docker-compose.yml define três serviços: um para o banco de dados MySQL, outro para o servidor PHP-FPM e outro para o servidor web Nginx. O serviço do PHP usa a imagem definida no Dockerfile anterior, montando o diretório atual como volume e expondo a porta 8000. O serviço do Nginx usa a imagem publicamente disponível do Nginx, montando os arquivos de configuração do servidor virtual.
Com esses passos, você terá um ambiente de desenvolvimento completo para o Symfony, isolado em um contêiner Docker e independente do sistema operacional do computador.
Conclusão
A integração entre o Docker e o Symfony permite criar um ambiente de desenvolvimento leve, portátil e fácil de configurar. Com o Docker, é possível isolar o ambiente de desenvolvimento do restante do sistema operacional do computador, evitar conflitos de dependência e criar ambientes de desenvolvimento idênticos para diferentes desenvolvedores. Isso pode melhorar significativamente a produtividade da equipe de desenvolvimento e reduzir o tempo de configuração do ambiente de desenvolvimento.