Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add feature for docker-compose laravel #495

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/awesome-compose.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/material_theme_project_new.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 19 additions & 0 deletions .idea/php.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

116 changes: 116 additions & 0 deletions laravel-nginx-mysql-redis/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
# Configurando um Ambiente de Desenvolvimento Laravel com DOCKER

## Índice
- [Pré-requisitos](#pré-requisitos)
- [Docker Desktop](#docker-desktop)
- [Windows](#windows)
- [Linux](#linux)
- [Rodando Comandos](#rodando-comandos)

## Pré-requisitos
- [Docker Desktop](https://www.docker.com/products/docker-desktop/)
- WSL (Windows Subsystem for Linux)

## Docker Desktop
Antes de qualquer coisa, certifique-se de ter o Docker Desktop instalado em seu sistema. Se você ainda não possui ou não configurou corretamente, siga o guia oficial de instalação do Docker Desktop.
- [Windows](https://www.docker.com/products/docker-desktop/)
- [Linux](https://docs.docker.com/engine/install/ubuntu/)

## Windows

### 1. Clonando o Repositório no WSL
Primeiro, certifique-se de ter o WSL (Windows Subsystem for Linux) configurado no seu sistema. Se você ainda não o configurou, siga o [guia oficial de instalação do WSL](https://docs.microsoft.com/pt-br/windows/wsl/install) para prepará-lo.

Depois que o WSL estiver configurado, abra um terminal WSL e navegue até o diretório onde deseja clonar o repositório do seu projeto Laravel. Execute o comando abaixo para clonar o repositório:

```bash
git clone https://github.com/IgorOliverx/docker-laravel.git
```

### 2. Rodando o Docker Compose
Após clonar o repositório, navegue até o diretório do projeto:

```bash
cd docker-laravel
```

Agora, execute o seguinte comando para construir e iniciar os contêineres Docker:

```bash
docker-compose up -d --build
```

Esse comando irá construir os contêineres definidos no arquivo `docker-compose.yml` e iniciá-los em segundo plano. A opção `--build` garante que as imagens Docker sejam construídas novamente, o que é útil se você fez alterações nos Dockerfiles.

---

## Linux

### 1. Clonando o Repositório
Abra um terminal e navegue até o diretório onde deseja clonar o repositório do seu projeto Laravel. Execute o comando abaixo para clonar o repositório:

```bash
git clone https://github.com/seu-usuario/seu-repositorio.git
```

Substitua `https://github.com/seu-usuario/seu-repositorio.git` pela URL do repositório que deseja clonar.

### 2. Rodando o Docker Compose
Após clonar o repositório, navegue até o diretório do projeto:

```bash
cd seu-repositorio
```

Agora, execute o seguinte comando para construir e iniciar os contêineres Docker:

```bash
docker-compose up -d --build
```

Esse comando irá construir os contêineres definidos no arquivo `docker-compose.yml` e iniciá-los em segundo plano. A opção `--build` garante que as imagens Docker sejam construídas novamente, o que é útil se você fez alterações nos Dockerfiles.

---

## Rodando Comandos

1. Após executar o comando de build, execute o comando:
```bash
docker exec -it setup-php bash
```
depois:
```bash
composer install
php artisan key:generate
cp .env.example .env
```

2. Abra a IDE de sua escolha (recomendo o PHPStorm).
3. Edite o arquivo `.env`, as credenciais do banco de dados e do Redis devem ser alteradas.
4. Algo como:
```
DB_CONNECTION=mysql
DB_HOST=setup-mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=root
```
PS: Se o laravel relatar o erro "Connection refused:" altere a porta para '3307'

5. Altere também as credenciais do Redis, algo como:
```
REDIS_HOST=setup-redis
REDIS_PASSWORD=null
REDIS_PORT=6379
```

5. Agora
```bash
php artisan migrate

PS: A fim de elevar o nível de segurança, você pode alterar as credenciais no arquivo `docker-compose.yml`.

---

Com esses passos, você terá um ambiente de desenvolvimento Laravel configurado usando Docker tanto no Windows quanto no Linux. Se precisar de mais ajuda, consulte a documentação oficial do Docker e Laravel.
36 changes: 36 additions & 0 deletions laravel-nginx-mysql-redis/SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@

Certificado de Origem do Desenvolvedor
Versão 1.1

Copyright (C) 2004, 2006 A Fundação Linux e seus colaboradores.

Todos estão autorizados a copiar e distribuir cópias textuais deste
Documento de licença, mas alterá-lo não é permitido.


Certificado de origem 1.1 do desenvolvedor

Ao contribuir para este projeto, certifico que:

(a) A contribuição foi criada no todo ou em parte por mim e eu
ter o direito de submetê-lo sob a licença de código aberto
indicado no arquivo; ou

(b) A contribuição é baseada em trabalhos anteriores que, para o melhor
do meu conhecimento, é coberto sob um código aberto apropriado
licença e eu tenho o direito sob essa licença de enviar isso
trabalho com modificações, seja criado no todo ou em parte
por mim, sob a mesma licença de código aberto (a menos que eu seja
permitido submeter-se sob uma licença diferente), conforme indicado
no arquivo; ou

(c) A contribuição foi-me fornecida diretamente por algum outro
pessoa que certificou (a), (b) ou (c) e eu não modifiquei
É isso mesmo.

(d) Compreendo e concordo que este projeto e a contribuição
são públicos e que um registro da contribuição (incluindo todos os
As informações pessoais que eu envio com ele, incluindo minha assinatura) são
mantido indefinidamente e pode ser redistribuído de forma consistente com
este projeto ou a(s) licença(s) de código aberto(s) envolvida.

18 changes: 18 additions & 0 deletions laravel-nginx-mysql-redis/demo/.editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 4
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.{yml,yaml}]
indent_size = 2

[docker-compose.yml]
indent_size = 4
64 changes: 64 additions & 0 deletions laravel-nginx-mysql-redis/demo/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
APP_NAME=Laravel
APP_ENV=local
APP_KEY=
APP_DEBUG=true
APP_TIMEZONE=UTC
APP_URL=http://localhost

APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US

APP_MAINTENANCE_DRIVER=file
APP_MAINTENANCE_STORE=database

BCRYPT_ROUNDS=12

LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=sqlite
DB_HOST=setup-mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=user
DB_PASSWORD=root

SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null

BROADCAST_CONNECTION=log
FILESYSTEM_DISK=local
QUEUE_CONNECTION=database

CACHE_STORE=database
CACHE_PREFIX=

MEMCACHED_HOST=127.0.0.1

REDIS_CLIENT=phpredis
REDIS_HOST=setup-redis
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=log
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

VITE_APP_NAME="${APP_NAME}"
11 changes: 11 additions & 0 deletions laravel-nginx-mysql-redis/demo/.gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
* text=auto eol=lf

*.blade.php diff=html
*.css diff=css
*.html diff=html
*.md diff=markdown
*.php diff=php

/.github export-ignore
CHANGELOG.md export-ignore
.styleci.yml export-ignore
20 changes: 20 additions & 0 deletions laravel-nginx-mysql-redis/demo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/.phpunit.cache
/node_modules
/public/build
/public/hot
/public/storage
/storage/*.key
/vendor
.env
.env.backup
.env.production
.phpactor.json
.phpunit.result.cache
Homestead.json
Homestead.yaml
auth.json
npm-debug.log
yarn-error.log
/.fleet
/.idea
/.vscode
Loading