Blog e Artigos Tecnologia

Blog e Artigos Tecnologia

Who am I?

Sou ūüíĽ Desenvolvedor PHP | Laravel #Fullstack #Dev #DevOps #Laravel #PHP #lucena


What I write about


Recent Posts

Laradock install

Atualmente, existem muitas empresas que usam o Docker para apoiar o trabalho das equipes de desenvolvimento.

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.

http://laradock.io/

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