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