Executando verificação de segurança...
3

Dúvidas com docker

Bom.. Tem um tempinho que estudo programação, recentemente comecei usar o docker por conta do conteúdo que venho estudando, e por conta de um projeto pessoal que venho procurando desenvolver.. Como tem pouco tempo que venho usando o docker, tenho tido umas dúvidas que é: ao desenvolver um projeto, tem a necessidade de criar um Dockerfile para que tenha como rodar uma aplicação em outro ambiente? (desde já agradeço pelas respostas).

Carregando publicação patrocinada...
9

Na teoria não precisa, mas é mais fácil se fizer.

Por exemplo, pra rodar um container com o MySQL você pode só usar esse comando no seu terminal:

docker run -d --name NOME_IMAGEM -e MYSQL_ROOT_PASSWORD=SENHA(root) -p 3307:3306 mysql

Mas se você fizer um Dockerfile:

# Usar a imagem oficial do MySQL
FROM mysql:latest

# Definir a senha para o usuário root do MySQL
ENV MYSQL_ROOT_PASSWORD=SENHA(root)

# Expor a porta 3306 para permitir conexões externas
EXPOSE 3306

Então é só rodar algo como:

docker compose up -d --build
// ou
docker build -t nome_da_imagem .
docker run -d --name nome_do_container -p 3307:3306 nome_da_imagem

Ai depende mais do que você prefere, porém pra acostumar, acho que é legal ir fazendo sempre no Dockerfile, fica tudo muito mais organizado. Só que vai da necessidade/complexidade do seu problema.

1
2
5

A resposta é: depende.

Se você está desenvolvendo uma aplicação pra aprender, localmente e etc, é dispensavel. Apenas tenha certeza de documentar muito bem o que é necessário para que sua aplicação seja instanciada na máquina e qual o procedimento a ser seguido para isso.

Se estamos falando de projetos reais, é muito importante que o projeto conte com um Dockerfile. Lembre-se: voce nao esta desenvolvendo algo que vai funcionar apenas localmente, isso vai rodar em alguma Cloud ou maquina on premise e sua aplicação será manipulada por algum orquestrador de containers (como Kubernetes ou ate docker-compose). O dockerfile é um arquivo que descreve como criar uma imagem da sua aplicacao, de forma que seja possivel e simples iniciar uma máquina com as condições ideais para que essa aplicação funcione de forma correta.

Então, sim. É indispensável criar dockerfiles para aplicações que vão estar em produção. Não, voce nao precisa ter isso localmente mas é boa pratica e é importante aprender

2

Meus dois centavos de contribuição nisso, se for o caso de uso em produção:

  • Nunca use a imagem latest na base de suas imagens, use as tags.
  • Se possivel, versione seu Dockefile em um repositório git.
1
1

Alguém sabe dizer se tem algum site que tem alguns exemplo de configurar o docker compose, eu também comecei usar o docker a pouco tempo e apanhei pra configurar uma imagem do mysql. Tive problema com versão, configuração do composer e o pior é que eu tava olhando pra documentação. Só consegui resolver fuçando em outros repositorios no github, mas deu um trambalho.