Code Monkey home page Code Monkey logo

php-community's Introduction

Docker + PHP + Nginx + Mysql + Postgres + Redis

Está imagem foi desenvolvida afim de facilitar a vida do desenvolvedor PHP, permitindo assim que de forma fácil um dev consiga executar todo o ambiente de desenvolvimento PHP.

Imagem Docker PHP com Nginx

Ver imagem no Docker Hub

Ver Vídeo Passo a Passo

Clique aqui para acessar o vídeo tutorial no YouTube

Requisitos

  • Ter o Docker instalando em sua máquina. Este passo a passo funciona tanto para ambiente Linux como para Windows e macOS.
  • Caso você deseje subir uma imagem customizada para seu próprio Docker Hub é necessário então ter uma conta no Docker Hub.

Atenção

  • Não execute os comandos de docker-compose build se este repositório estiver dentro de um subsistema Linux, como o WSL.

  • Caso o comando sh não sirva para você executar os scripts, então experimente utilizar ./script-....

0º Passo

Clone este repositório para sua área de trabalho, pois iremos trabalhar a partir dessa estrutura de projeto.

1º Passo

Verificar se o Docker está sendo executado em sua máquina. Caso não esteja você deve iniciar o Docker, para isso basta basta:

  • Abrir Docker Desktop, ou em ambiente Linux:

sudo service docker start

2º Passo

Se você não for fazer build de uma nova imagem PHP + Nginx, então você pode pular para o 8º Passo Caso vá customizar sua imagem Docker, então acesse o arquivo Dockerfile e realize as alterações desejadas.

3º Passo

Depois de feiras as alteraçãoes agora vamos contruir a imagem. Para isso execute:

docker-compose build web

Ou você pode executar diretamente o script:

sh script-build-docker-compose.sh

4º Passo

Com a imagem criada corretamente, você agora pode fazer um teste de execução.

docker run web

5º Passo

Se o teste de execução der certo, então é hora testarmos subir todo o ambiente do Docker Compose. Para isso vamos executar agora

docker-compose up -d

Ou você pode executar diretamente o script:

sh script-start-docker-compose.sh

Quando quiser parar a execução desse ambiente execute:

sh script-drop-docker-compose.sh

6º Passo

Estando tudo ok, agora é hora de subirmos a imagem para o Dockerhub, assim ela fica disponível para ser acessada em diversos ambientes. É importante no docker-compose.yml ser alterado o nome da imagem para o de seu repositório. Estando pronto, execute:

sh script-push-docker-compose.sh

7º Passo

Devemos ir ao Docker Hub e verificar se nossa imagem já está corretamente em nosso repositório.

8º Passo

Agora é hora de ajustarmos nossas aplicações dentro do ambiente.

Para isso iremos usar a pasta applications, nela devemos salvar colocar cada projeto PHP, e é importante que cada projeto PHP tenha uma pasta public, pois é nestá pasta public que o Nginx irá consultar o index.php.

Assim, você pode clonar um projeto já existente dentro de applications, ou pode usar o script abaixo para gerar uma aplicação Laravel do zero. Certifique-se de ter o Composer e o PHP instalado em sua máquina para executar.

sh script-new-project-laravel.sh

OBS: Para ajustar variaveis de conexão de banco de dados na sua aplicação veja exemplo: index.php.

9º Passo

Agora é hora de configurar o Nginx para que ele consiga encontrar suas aplicações. Para isso execute:

sh script-generate_sites.sh

Ao executar esse script, você deverá informar qual o nome da pasta de sua aplicação em applications. E também deverá informar uma porta que não esteja sendo utilizada no sistema. Recomendamos utilizar as portas entre 8080 e 8089.

10º Passo

Com todas essas configurações feitas, agora é hora de colocar a aplicação em execução.

sh script-start-docker-compose.sh

Exemplo para acessar sua aplicação: http://localhost:8080

11º Passo

Para derrubar a aplicação execute:

sh script-drop-docker-compose.sh

12º Passo

Caso use Windows o macOS, agora é só mover todo o ambiente configurado aqui para dentro do WSL.

Outras informações

  • Caso precise remover as configuções de sites do Nginx, acesse a pasta docker/nginx/sites e lá encontre e remova as configurações .conf que desejar.

  • Caso precise derrubar um container

sh script-drop-container.sh

  • Caso precise visualizar quais containers estão em execução

sh script-docker-running.sh

  • Caso precise entrar em um container

sh script-access-container.sh

php-community's People

Contributors

urnauzao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.