O Docker compose é uma forma de agregar diversos containers.
image Sempre que obter a imagem do Hub, deve ser indicada a imagem pretendida.
build Em alternativa à image, o build obtém a imagem local.
volume O volume relaciona pastas locais com as pastas do container. A atualização é bi-direcional, ou seja, quando o container atualiza ficheiros dentro do container, as pastas locais são também atualizadas. Em realidade é criada uma ponte entre as duas pastas.
- Criação do container para NGINX
- Criação do container para MySQL
- Criação do container para PHP
- Criação do container para Composer
- Criação da app Laravel
- Criação da pasta /docker/nginx
- Criação do ficheiro /docker/nginx/Dockerfile
- Criação da imagem:
docker build --no-cache -t laravel-nginx .
- Execução da imagem:
docker run --rm -p 8080:80 laravel-nginx
ou, especificando o volume na execução:
docker run -rm -p 8080:80 -v C:\Users\luciano\Source\Docker\laracast-docker-tutorial\docker\nginx\src:/var/www/public_html/public laravel-nginx
- Criação da pasta /docker/src
- Criação do ficheiro /docker/src/index.html
- Criação do ficheiro /docker-compose.yaml
- No ficheiro /docker-compose.yaml espeficiar o build com contexto /docker/nginx e dockerfile Dockerfile
- Criação da pasta /docker/mysql
- Criação do ficheiro /docker/mysql/Dockerfile
- Atualização do ficheiro /docker-compose.yaml
- No ficheiro /docker-compose.yaml espeficiar o build com contexto /docker/mysql e dockerfile Dockerfile
- Criação da pasta /docker/php
- Criação do ficheiro /docker/php/Dockerfile
- Criação do ficheiro /docker/src/index.php
- Atualização do ficheiro /docker-compose.yaml
- No ficheiro /docker-compose.yaml espeficiar o build com contexto /docker/php e dockerfile Dockerfile
- Criação da pasta /docker/composer
- Criação do ficheiro /docker/composer/Dockerfile
- Atualização do ficheiro /docker-compose.yaml
- No ficheiro /docker-compose.yaml espeficiar o build com contexto /docker/composer e dockerfile Dockerfile
- Criação da imagem:
docker-compose build composer
- Criação da app Laravel através do composer do Docker:
docker-compose run --rm composer create-project laravel/laravel .
Note que ao executar o composer, o Docker entende que o workdir é o /docker/src
.
Install MKCert on Windows|Linux
Locally trusted development certificates with mkcert and IIS
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --build nginx
docker-compose run --rm php -i | grep opcache