Skip to content

Ambiente docker para Laravel com PHP, NGINX, NODE, MYSQL, REDIS, QUEUE, MAILHOG e PHPMYADMIN

Notifications You must be signed in to change notification settings

labdockers/laravel_docker_v10

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation


INSTAGRAM LINKEDIN DEV.TO TWITTER

SOBRE O PROJETO

  • Uma estrutura completa para criar um ambiente no docker para se trabalhar com Laravel.
  • Essa estrutura inicial é excelente para desenvolver uma SPA com Laravel ou ambiente para API

ESTRUTURA

PROCEDIMENTO A SER EXECUTADO

Clone o repositório

git clone https://github.com/labdockers/laravel_docker_v10.git

Acesse a pasta laravel_docker_v10 e clone o repositório para criar um projeto do Laravel mais recente

git clone https://github.com/laravel/laravel.git nome-do-meu-projeto

Observação:

  • Você pode renomear em vez de nome-do-meu-projeto para o nome app ou qualquer outro tipo de nome que identifique o seu projeto. não esqueça de substituir os volumes no arquivo docker-compose para caminho da sua pasta do laravel.
  • Na caminho da pasta ./nome-da-pasta/ ele vai copiar o que tiver dentro desssa pasta e copiar para /var/www dentro do container. Nos volumes coloque sempre o caminho da pasta onde está sua aplicação laravel.
volumes:
   - ./nome-do-meu-projeto/:/var/www

Observação:

  • Esses comandos funciona em ambient linux.

Acesse a pasta do seu projeto (nome-do-meu-projeto) e vamos criar o arquivo .env

cp -r .env.example .env

Observação:

  • Você pode mudar nome da sua pasta nome-do-meu-projeto para o que você quiser.

No seu arquivo docker-compose, uma observação importante, DB_HOST, CACHE_DRIVER, REDIS_HOST todos eles tem que ter o nome igual do seu container que está configurado no docker-compose. Automaticamente o docker faz referência e identifica o IP do container e acrescenta no ambiente de variável do .env, por isso é suficiente só colocar nome do container em vez do ip.


Vamos fazer o deploy dos containers do projeto

docker-compose up -d

Para acessar o container

docker-compose exec nomedomeuprojeto bash

Execute os seguintes comandos

composer install

depois

php artisan key:generate

e depois

php artisan config:cache

e para finalizar o

npm install

Observação:

  • Não esqueça de adicionar no seu arquivo .gitignore a pasta /docker/mysql/*
  • Caso tente refazer build da sua aplicação com docker-compose up -d --build e se aparecer um erro, verifique a pasta docker/mysql/dbdata se ela estiver protegida para escrever, alterar ou excluir, use o esse comando do linux para da permissão na pasta.
  • Não esqueça que para executar esse comando, abra o terminal dentro da pasta docker/mysql/
  chmod -R 777 dbdata

ALGUMAS ALTERAÇÕES QUE VOCÊ PODE PERSONALIZAR

Sim, é só ir nas configurações docker-compose e alterar as portas do serviço. Por exemplo, quero de 8181

ports:
        - 8181:80

para 8182

ports:
        - 8182:80

No docker-compose, você pode alterar o nome do network de acordo com o nome do seu projeto, para ficar mais fácil identificar o projeto que está trabalhando. Não esqueça de alterar de todos os containers.

networks:
    - nome-da-minha-aplicacao

Você pode mudar o nome do container do seu projeto, veja o exemplo abaixo

 container_name: alguma coisa

para

 container_name: para-nome-da-minha-aplicacao 

Se mudar o nome do serviço, por exemplo

services:
    # project
    app:
        container_name: nome-da-minha-aplicacao
        build:

de

services:
    # project
    nome-novo-aqui:
        container_name: nome-da-minha-aplicacao
        build:

Presta atenção no documento todo e onde estiver nome app troca pelo nome novo que colocou.

E também Não esqueça de atualizar também no arquivo docker/nginx/laravel.conf

fastcgi_pass app:9000;

para

fastcgi_pass nome-novo-aqui:9000;

COMANDOS DOCKER

Para parar todos containers de uma vez

docker stop $(docker ps -qa)

Para remover os containers

docker rm $(docker ps -qa)

Para remover todas as imagens de uma vez

docker rmi $(docker images -qa)

Para remover uma imagem especifica a força

docker rmi -f aqui_voce_digita_codigo_da_imagem
  • Observação: Não precisa digitar o código todo, os 3 primeiros caracteres do código já serve.

About

Ambiente docker para Laravel com PHP, NGINX, NODE, MYSQL, REDIS, QUEUE, MAILHOG e PHPMYADMIN

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published