Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Desenvolvimento local com Docker

Boa tarde!

Acompanhando o curso de Docker, imagino que para montar um ambiente de desenvolvimento local existem alguns cenários possíveis:

  1. Um único container com todo o LAMP e a aplicação
  2. Um container para cada parte do LAMP
  3. Um container para o MySQL + um container para o PHP + um container para cada aplicação que irá linkar com os dois anteriores

Porém, não consegui entender ainda qual seria a opção mais recomendada. Poderia me dar alguma sugestão?

4 respostas

Oi Samir

Ao meu ver, o ideal seria um container para o lamp e outro para o mysql. Não precisa criar mais um container para linkar os outros. Basta fazer o container com o php conversar com o do mysql.

Então seria 2 containers (php +sql).

Consegui te ajudar?

abraço

solução!

Olá, Samir.

Quando você for pensar no docker sendo usado como desenvolvimento local, pense nele como o gerenciador de depêndencias de ambientes. Por exemplo, vamos pensar que você está desenvolvendo um site em PHP que precisa de MysSQL.

Você terá como dependência o MySQL enquanto estiver desenvolvendo o site que está PHP, sendo assim é interessante você ter um container do docker com a imagem do seu MySQL configurada, com toda a estrutura de dados que você precisa. Por outro lado, você não precisa de um container com o Apache para rodar o código do seu site enquanto você o desenvolve.

No memomento que você for colocar o site em produção, é interessante ter um container com o seu Apache configurado para rodar o site que você desenvolveu em PHP, ele irá consumir o container com o MySQL que você contruiu enquanto desenvolvia o site.

Sacou? Se ficou muito confuso me avisa que tento explicar de uma forma melhor :-)

@Caio e @Marco, Obrigado pelas respostas. Consegui entender o conceito, basicamente vou gerar container(s) apenas para o que terá no servidor de diferente na minha máquina. Sendo geralmente o PHP e o MySQL.

No entanto, isso levanta outra questão: Como ficaria a publicação no ambiente de produção? Existiria uma instância do Docker rodando no servidor para receber tudo? Mas, nesse caso teria uma máquina virtual rodando dentro de outra máquina virtual (cloud)?

Abraços!

Aqui no trabalho eu estou testando desta forma eu tenho um container apache com minha aplicação PHP e outro container postgresql com volume mapeado para o disco do host local.Até o momento esta funcionando, fiz o commit dos containers e criei imagens com toda as configurações de aplicação e banco, mas até agora não consegui resolver uma coisa que seria muito importante para o cenário da empresa, que seria poder colocar várias aplicações web em containers assim eu teria uma economia significativa de recursos de hardware com várias aplicações rodando em containers em uma única VM, mas percebi que quando eu tenho várias aplicações em containers em uma mesma VM surgem conflitos de portas, principalmente de serviços que usam por padrão as portas 80, 5432 e outras, ou seja, o que eu imaginava até o momento não consegui resolver que é poder por várias aplicações em containers na mesma VM executarem na porta 80 padrão HTTP e economizar recursos.