Do not speak Portuguese? Translate this site with Google or Bing Translator
Laradock install

Posted on: January 29, 2020 12:18 PM

Posted by: Renato

Categories: Laravel

Views: 3197

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

0

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (15) Variados (109) PHP (130) Laravel (158) Black Hat (3) front-end (28) linux (113) postgresql (39) Docker (27) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (54) devops (25) nodejs (5) npm (2) nvm (1) git (8) firefox (1) react (6) reactnative (5) collections (1) javascript (6) reactjs (7) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (1) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (11) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (4) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (1) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (40) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (1) jwt (4) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (2) Architecture (3) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (1) autorizacao (2) authentication (4) authorization (2) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1)

New Articles



Get Latest Updates by Email