Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Montando imagem da aplicação

Poderia ter uma aula extra de bomo buildar a imagem dessa app, como criar o docketfile e tals, para uso no docker.

1 resposta
solução!

Olá Matheus! Tudo bem?

Que legal que você está interessado em aprender a criar imagens Docker para sua aplicação Flask! Embora o curso não tenha uma aula específica sobre isso, posso te dar uma ideia de como começar.

Para criar uma imagem Docker, você precisa de um arquivo chamado Dockerfile. Este arquivo contém uma série de instruções que o Docker usa para construir a imagem. Aqui está um exemplo básico de como você poderia estruturar um Dockerfile para uma aplicação Flask:

# Use a imagem base do Python
FROM python:3.9

# Defina o diretório de trabalho dentro do contêiner
WORKDIR /app

# Copie o arquivo requirements.txt e instale as dependências
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Copie o restante do código da aplicação
COPY . .

# Exponha a porta em que a aplicação vai rodar
EXPOSE 5000

# Comando para rodar a aplicação
CMD ["flask", "run", "--host=0.0.0.0"]

Passos para criar sua imagem Docker:

  1. Crie o Dockerfile: Coloque o exemplo acima em um arquivo chamado Dockerfile na raiz do seu projeto.

  2. Adicione um requirements.txt: Certifique-se de que você tem um arquivo requirements.txt com todas as dependências do seu projeto Flask. Você pode gerar esse arquivo usando pip freeze > requirements.txt.

  3. Construa a imagem: No terminal, navegue até a pasta do seu projeto e execute o comando:

    docker build -t minha-aplicacao-flask .
    
  4. Execute o contêiner: Depois que a imagem for construída, você pode rodar o contêiner com:

    docker run -p 5000:5000 minha-aplicacao-flask
    

Esses passos são um ponto de partida e podem variar dependendo das especificidades da sua aplicação. Espero que isso te ajude a dar os primeiros passos com Docker!

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.