Posted on: January 29, 2020 12:18 PM
Posted by: Renato
Categories: Laravel
Views: 3571
O que é o Docker?
Inicialmente, era um projeto interno da empresa dotCloud , desenvolvido por Solomon Hykes, que trabalhou na melhoria do processo de criação de projetos. Em 2013, sua ideia foi divulgada e começou a ganhar mais e mais usuários.
O Docker é uma plataforma aberta para desenvolvimento, envio e execução de aplicativos. O Docker permite que você separe seus aplicativos de sua infraestrutura para que você possa entregar software rapidamente. Com o Docker, você pode gerenciar sua infraestrutura da mesma maneira que gerencia seus aplicativos. Aproveitando as metodologias do Docker para enviar, testar e implantar código rapidamente, você pode reduzir significativamente o atraso entre a gravação do código e sua execução na produção.Utilizando o laradock
Requisitos: git e Docker
Instale os pacotes necessários para instalação adicional:
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ softwares-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo apt-key fingerprint 0EBFCD88 $ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" $ sudo apt-get update $ sudo apt-get install docker-ce $ sudo docker run hello-world
Laradock É uma solução interessante para desenvolvedores que usam o Laravel , bem como outros frameworks ou aplicativos escritos em PHP. O que é isso? O Laradock é simplesmente um conjunto de ferramentas (aplicativos, software) preparado para criar um ambiente de trabalho para programadores PHP.
Laradock é um importante e reconhecido projeto criado pela comunidade do PHP com configurações prontas para trabalhar com Laravel, utilizando o Docker.
Com este projeto é possível facilmente trabalhar com qualquer banco de dados e ainda tem liberdade para utilizar várias ferramentas a medida que precisar.
O laradock já conta com configurações para nginx, apache, php-fpm, mysql, mariadb, postgres, redis, mongo, e várias outras configurações. As principais ferramentas que podemos usar são:
Bases: MySql, PostgreSql, MongoDB, MariaDB Cache: Redis, Memcached, Aerospike Servidores: Apache, Nginx, HHVM "Compiladores": PHP FPM, HHVM Proxy: HAPProxy Enfileiramento: RabbitMQ, PHP Worker, Beanstalkd Outros: PhpMyadmin, Varnish, Jenkins, Laravel Echo, Elasticsearch ...
Em resumo, com apenas um único comando já é possível subir todos estes serviços ou subir cada um a medida que precisar.
https://github.com/laradock/laradock
Utilizando:
Vou utilizar o NGINX como exemplo.
Laradock vamos subir os serviços: NGINX, PHP, e MySQL. Instale o Laradock:
1 – Crie um diretório em qualquer parte do seu S.O. para receber os arquivos de configuração do Docker
2 – Clone o repositório:
$ git clone https://github.com/Laradock/laradock.git
laradock
Isso vai clonar o repositório para dentro de /laradock
3 – Acesse o diretório:
$ cd laradock
4 – Crie o arquivo .env (arquivo de definições) a partir do arquivo env-exemple:
$ cp env-example .env
Edite o arquivo .env:
$ vim .env
Defina os parâmetros necessários: ... PHP_VERSION=7.2 WORKSPACE_INSTALL_PYTHON=true MYSQL_VERSION=5.7 MYSQL_DATABASE=db_name MYSQL_USER=root MYSQL_PASSWORD=secret MYSQL_PORT=3306 MYSQL_ROOT_PASSWORD=secret ...
5 – Subir os serviços que vamos precisar:
$ docker-compose up -d nginx mysql ou $ docker-compose up -d nginx mysql phpmyadmin redis workspace
$ docker-compose ps
PS. Como o nginx depende do PHP, automaticamente ao subir o NGINX o serviço do PHP-FPM já sobe também, e com isso o PHP também irá rodar com sucesso junto ao nginx.
NOTA: No arquivo .env tem as configurações dos serviços, como senhas e portas. Se ao subir der algum conflito por porta precisa acessar esse arquivo e alterar. A porta padrão do arquivo NGINX é 80, se precisar alterar: NGINX_HOST_HTTP_PORT=Porta que vai rodar NGINX_HOST_HTTPS_PORT=Porta SSL
E para alterar os dados de senha do MySql: MYSQL_DATABASE=Nome do database padrão que será criado na primeira vez que rodar MYSQL_USER=Nome do usuário padrão MYSQL_PASSWORD=Senha do usuário MYSQL_PORT=Porta que vai rodar MYSQL_ROOT_PASSWORD=Senha do usuário root
Ao subir os containers pode verificar o que está rodando, através deste comando: 1
docker ps
Para testar acesse: http://localhost PS. Se tiver alterado a porta vai precisar informar a porta, exemplo: http://localhost:8000
Rodando uma Aplicação PHP com Laradock
Os arquivos do laradock estão em laradock, e nossas aplicações ficarão no nível anterior. Crie um diretório novo no mesmo nível do diretório laradock. Pode chamar este diretório (pasta) com o nome que quiser, em nosso exemplo vai se chamar app/
laradock/ app/
Dentro do diretório app/ crie um arquivo index.php com este conteúdo (app/index.php):
<?php phpinfo();
Agora precisamos alterar as configurações do NGINX para reconhecer essa nova aplicação em PHP. Acesse o arquivo configuração do nginx e altere o Document Root para app/, o arquivo de configuração do nginx fica em laradock/nginx/sites/default.conf Altere o Document Root assim:
root /var/www/app
Ao fazer isso já vai reconhecer o novo Document Root default, agora basta reiniciar os container do docker. Dentro da pasta laradock (cd laradock/) reinicie os serviços:
$ docker-compose restart
Após fazer isso basta acessar a nova aplicação: http://localhost PS. Lembre-se se tiver alterado a rota precisa informar: http://localhost:8000
Instalando e Rodando Aplicação Laravel com Laradock
É possível ter diversas aplicações rodando simultaneamente com o Laradock (pode ser aplicações PHP puras, laravel ou até mesmo outros frameworks PHP).
Primeiro passo é acessar a pasta do laradock (cd laradock/) Acessar o container workspace para rodar comandos do PHP e Composer.
$ docker-compose exec workspace bash
Ao rodar este comando pode observar que o terminal irá mudar para algo parecido com isso (está dentro do container workspace): root@f59a0bd8d58b:/var/www/
Aqui você tem acesso a um terminal para rodar comandos UNIX, como por exemplo: ls, mkdir, touch e etc. Rode o comando ls para ver os arquivos deste diretório. Ao rodar vai perceber que está acessando o nível anterior ao arquivos do laradock/, é possível ver até mesmo a pasta do laradock.
Agora que estamos acessando o terminal com container workspace podemos instalar o Laravel. Certifique-se que o comando do composer está funcionando com sucesso:
$ composer
Para instalar o laravel, rode este comando:
$ composer create-project --prefer-dist laravel/laravel name-app-laravel
Agora basta aguardar o composer baixar o framework laravel e todas as suas dependências. Ao terminar terá um novo diretório (pasta) chamado name-app-laravel (Lembrando que você pode criar sua app com o nome que desejar, basta trocar name-app-laravel pelo nome desejado).
Para sair do container workspace basta pressionar as teclas CTRL + P + Q simultaneamente. Agora que já instalou o laravel podemos criar um virtualhost (nome de endereço local) para acessar.
Vamos a configuração: Crie um novo arquivo em laradock/nginx/sites/app-laravel.conf Lembrando que este arquivo é apenas para definição do virtualhost e aplicação laravel correspondente. É recomendado que deixe o nome deste arquivo semelhante ao nome do virtualhost que vai trabalhar.
Coloque este conteúdo no arquivo app-laravel.conf
... server {
listen 80; listen [::]:80;
server_name app-laravel.dev; root /var/www/name-app-laravel/public; index index.php;
location / { try_files $uri $uri/ /index.php$is_args$args; }
location ~ .php$ { try_files $uri /index.php =404; fastcgi_pass php-upstream; fastcgi_index index.php; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } ...
As configurações mais importantes são: server_name: nome do virtualhost; root: caminho onde está a aplicação laravel;
Após fazer isso precisa reiniciar os containers do docker para reiniciar o nginx para ler o novo arquivo de configuração. Com o terminal e dentro do diretório laradock/ rode:
$ docker-compose restart
Agora falta um pequeno detalhe para funcionar, criar a configuração de virtualhost localmente no próprio S.O. Abra o arquivo de configuração de Virtualhost No Linux e Mac fica em /etc/hosts No Windows fica C:/Windows/System32/drivers/etc/hosts
E adicione a configuração para quando acessar o endereço app-laravel.dev não busque fora da maquina e sim no próprio localhost: 127.0.0.1 app-laravel.dev
Feito isso agora basta acessar http://app-laravel.dev/ que vai acessar a nossa aplicação laravel.
Para ajudar mais voce pode instalar um container Portainer para voce gerenciar outros container.
Fontes: https://highsolutions.org/our-blog/entry/laravel-via-docker-platform-a-how-to-guide Fontes: https://blog.especializati.com.br/utilizando-o-laradock/
- Renato Lucena
Donate to Site
Renato
Developer