Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
É interessante ter o ambiente de desenvolvimento virtualizado (vamos supor, com o Virtual Box ou Vagrant) ou ter tudo instalado na máquina na forma "tradicional"?
Alguém utiliza ambiente de desenvolvimento virtualizado?
Também uso docker, as vezes é um pouco chato até voce pergar o jeito, entender o funcionamento, a inicialização dos processos, entrypoint, volumes e portas mas depois que pegar o jeito ja era... Tem um canal no youtube chamado linuxtips que é show, aprendi bastante lá e depois ate comprei o livro. Aqui uso apenas 1 container rodando ubuntu, apache2, php7.2 e mariadb-server 10.1. Funciona belezinha...
Olá @MichellHenrique, tudo bem?
>
Em 03/08/2018 at 13:32, MichellHenrique disse:
Aqui uso apenas 1 container rodando ubuntu, apache2, php7.2 e mariadb-server 10.1
Pelo que eu entendi você está rodando apenas um container para o php/apache/banco, é isso?
Se sim, permita-me lhe fazer uma sugestão: o docker foi feito para atomizar as soluções.
Em outras palavras, o ideal seria você criar um container para cada responsabilidade. Dessa forma, se der problema no seu banco, por exemplo, o resto continua funcionando, lhe dando maior liberdade para configurar um banco extra temporário.
Mas isso é só um exemplo superficial, pois esse princípio confere mais segurança e melhor gerenciamento de recursos de máquina também, por exemplo.
No seu caso, você deveria subir:
- Um container para o PHP, com apache (ou outro webserver, de sua preferência). https://hub.docker.com/_/php/
- Um container para o mariadb. https://hub.docker.com/_/mariadb/
- (opcional, mas interessante) Adminer, para auxiliar no gerenciamento do banco: https://hub.docker.com/_/adminer/
- (opcional também, mas ajuda se você tiver mais de uma aplicação): um proxy reverso.
- Uma network (rede) para comunicação entre os containers.
- Volumes, conforme necessidade.
Você consegue orquestrar tudo isso com apenas um arquivo resumido de configuração usando o docker-compose, que é outro cara muito bacana de se estudar. Fica a sugestão :)
Opa, obrigado pelas dicas Matheus.
Com certeza o funcionamento ideal é por aí mesmo, principalmente quando se trata de escalabilidade
e produção com o compose, até mesmo o funcionamento do entrypoint direciona a isso, mas, no meu
caso, uso o docker mais para facilitar minha vida no desenvolvimento, particularmente não gosto de
rodar serviços alem do ssh na minha maquina física, ainda mais em ambientes públicos, então criei um
container com apache, php e mariadb pois isso facilita muito, só subir um container e pronto, já estou
apto para o desenvolvimento. Sei também que o ideal seria deixar o ambiente de desenvolvimento o
mais proximo possível do ambiente de produção mas aqui não faz muita diferença pois meu ambiente
de desenvolvimento é com arquitetura diferente do ambiente de produção, o que não ajuda muito...
Resumindo, no meu caso, criei uma imagem no docker hub com LAMP (linux, apache, mysql e php)
no qual basta 1 comando (docker run) e meu ambiente de desenvolvimento está pronto, no pc, no
notebook ou aonde for... Não é a forma mais sofisticada e escalável do mundo mas funciona bem.
Enfim cada caso é um caso e as vezes é desnecessário gastar muito tempo em uma solução que
vai além do que você realmente necessita, de qualquer forma, assim que possivel vou terminar de
ler esse livo sobre o docker, ainda não cheguei a me aprofundar na escalabilidade com compose,
kubernete, redes, balanceamento de cargas e etc pois minhas necessidade atuais me fizeram
mudar a leitura para outro livro.
De qualquer forma obrigado novamente pelas dicas...
VirtualBox e Vagrant são coisas completamente diferentes. Você pode perfeitamente ter um ambiente utilizando ambas as ferramentas.
O VirtualBox virtualiza o sistema operacional.
O Vagrant gerencia e configura esse sistema.
Por experiência própria eu digo: fuja disso. Por muito tempo utilizei exatamente essas ferramentas e só tive dor de cabeça. Perdia horas resolvendo problemas que não deveriam existir.
>
4 horas atrás, Anderson Modolon disse:
ou ter tudo instalado na máquina na forma "tradicional"?
Isso nunca. Não vale a pena. Dá dor de cabeça e amarra o desenvolvimento, além de gerar diferenças entre o servidor de produção, que facilmente resultam em problemas na aplicação.
Estude Docker. Esse carinha é o que você está procurando.