O que é o Docker Compose?
O Docker Compose é uma ferramenta que permite definir e executar aplicativos multi-contêineres de uma forma mais fácil, organizada e escalável. Com ele é possível definir as dependências entre os contêineres e gerenciá-los de forma unificada. Além disso, ele permite automatizar a instalação e a inicialização de contêineres, e oferece uma forma simples de configuração de ambientes.
Como instalar o Docker Compose?
Antes de instalar o Docker Compose, é necessário instalar o Docker. Para instalar o Docker Compose, basta executar o seguinte comando no terminal:
sudo curl -L "https://github.com/docker/compose/releases/download/{versão}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Lembre-se de substituir “{versão}” pela versão do Docker Compose que deseja instalar. Depois de executar o comando, lembre-se de dar permissão de execução ao arquivo com o comando:
sudo chmod +x /usr/local/bin/docker-compose
Como criar um arquivo docker-compose.yml?
Para criar um arquivo docker-compose.yml, basta criar um arquivo de texto com esse nome na raiz do seu projeto Symfony, e em seguida definir todos os serviços que deseja utilizar dentro dele, junto com suas configurações e dependências.
Por exemplo, para configurar um contêiner do MySQL, basta definir o serviço “mysql” dentro do arquivo docker-compose.yml, conforme o exemplo abaixo:
version: "3"
services:
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: symfony
MYSQL_ROOT_PASSWORD: root
Como executar os serviços com o Docker Compose?
Para executar os serviços definidos no arquivo docker-compose.yml, basta executar o comando “docker-compose up” na raiz do seu projeto Symfony. Isso irá construir e inicializar todos os contêineres, com suas configurações e dependências. Se desejar executar o Compose em background, basta adicionar a flag “-d” ao comando.
Por exemplo, para executar o Compose em background, basta executar o comando:
docker-compose up -d
Como acessar o aplicativo Symfony através do Docker Compose?
Para acessar o aplicativo Symfony através do Docker Compose, basta abrir o navegador e acessar o endereço “http://localhost:8000”. Se não houver nenhum serviço mapeando a porta 8000 do host, verifique no arquivo docker-compose.yml como a porta está sendo mapeada e utilize a porta correta para acessar o seu aplicativo.
Como exibir o log dos serviços com o Docker Compose?
Para exibir o log dos serviços definidos no arquivo docker-compose.yml, basta executar o comando “docker-compose logs” na raiz do seu projeto Symfony. Isso irá exibir o log de todos os contêineres executados pelo Compose, com informações sobre a inicialização, execução e possíveis erros.
Como parar os serviços com o Docker Compose?
Para parar os serviços definidos no arquivo docker-compose.yml, basta executar o comando “docker-compose down” na raiz do seu projeto Symfony. Isso irá parar todos os contêineres em execução, liberar as portas e eliminar os volumes utilizados pelos serviços.
Como reiniciar os serviços com o Docker Compose?
Para reiniciar os serviços definidos no arquivo docker-compose.yml, basta executar novamente o comando “docker-compose up” na raiz do seu projeto Symfony. Isso irá reconstruir e reinicializar todos os contêineres, com suas configurações e dependências atualizadas.
Como escalar os serviços com o Docker Compose?
Para escalar os serviços definidos no arquivo docker-compose.yml, basta definir a quantidade desejada de instâncias de cada serviço e executar o comando “docker-compose up –scale
Por exemplo, para escalar o serviço “web” para 3 instâncias, basta executar o comando:
docker-compose up --scale web=3
Como configurar as variáveis de ambiente com o Docker Compose?
Para configurar as variáveis de ambiente dos serviços definidos no arquivo docker-compose.yml, basta definir as variáveis dentro dos serviços com a propriedade “environment”. As variáveis podem ser inseridas manualmente ou lidas de um arquivo “.env” na raiz do seu projeto Symfony.
Por exemplo, para definir a variável “APP_ENV” no serviço “web”, basta adicionar as seguintes linhas no arquivo docker-compose.yml:
services:
web:
environment:
APP_ENV: dev
Como mapear volumes com o Docker Compose?
Para mapear volumes no Docker Compose, basta definir os diretórios a serem mapeados dentro dos serviços com a propriedade “volumes”. Os diretórios podem ser mapeados de forma manual ou lidos de um arquivo “docker-compose.override.yml” na raiz do seu projeto Symfony.
Por exemplo, para mapear o diretório “/var/www/html” do contêiner do serviço “php” para a pasta “./symfony” do host, basta adicionar as seguintes linhas no arquivo docker-compose.yml:
services:
php:
volumes:
- ./symfony:/var/www/html