Fala devs, vamos de segunda parte?
Este artigo faz parte de uma série onde escrevo sobre docker e mostro como é simples configurar um ambiente de desenvolvimento mínimo utilizando containers.
Série completa:
- Conceitos básicos, caso de uso, vantagens e instalação
- Criação de um ambiente PHP
- Servidor web e banco de dados
Dockerfile:
É neste arquivo que iremos definir a imagem base que será utilizada no ambiente, instalar as dependências e realizar todas as configurações necessárias. Portanto, crie um arquivo chamado Dockerfile
na raiz do seu diretório de trabalho com o seguinte conteúdo:
FROM php:7.1-fpm
RUN docker-php-ext-install pdo_mysql
Nele, estamos declarando a utilização da imagem php:7.1-fpm
e a instalação da dependência pdo_mysql
, que será necessária na terceira parte da série.
Docker Compose:
Crie um arquivo chamado docker-compose.yml
na raiz do seu diretório de trabalho com o seguinte conteúdo:
version: "3.7"
services:
php:
build:
context: .
image: phpdocker
container_name: php
ports:
- "9000:9000"
volumes:
- ".:/var/www/html/"
command: php -S 0.0.0.0:9000 -t public/
Este arquivo contém a “receita” do nosso ambiente e é nele que devemos declarar todos os nossos containers com os respectivos atributos, relacionamentos, dependências e configurações necessários.
No exemplo acima, estamos criando um container de PHP que utilizará como imagem base o php:7.1-fpm
, já declarado no arquivo Dockerfile
, além disso, podemos observar que é realizado um mapeamento do diretório de trabalho atual para o /var/www/
do container e que este, estará disponível através da porta 9000
, onde o servidor embutido do PHP é executado por padrão, como podemos observar na tag command
.
Para fins didáticos, crie um diretório chamadopublic
e dentro dele crie um arquivo chamado index.php
com o seguinte conteúdo:
<?php
phpinfo();
Para “subir” containers através do Docker Compose execute o seguinte comando:
docker-compose up -d
Se tudo deu certo, você pode acessar o container através do browser no seguinte endereço:
http://localhost:9000/