Article image
Anderson Jerônimo
Anderson Jerônimo25/08/2023 08:43
Compartilhe

Desenvolvendo uma Imagem Docker Personalizada com Dockerfile

  • #Docker
  • #Microsserviços

O Docker se tornou uma ferramenta essencial no desenvolvimento e implantação de aplicativos modernos. Uma das principais vantagens do Docker é a capacidade de criar imagens personalizadas para encapsular nossas aplicações e todas as suas dependências. Neste artigo, vamos explorar o Dockerfile, um arquivo de configuração usado para definir e criar imagens Docker personalizadas.

O que é um Dockerfile?

Um Dockerfile é um arquivo de texto que contém uma série de instruções que o Docker usa para criar uma imagem Docker. Ele permite automatizar o processo de construção de uma imagem, definindo o ambiente, as dependências e as configurações necessárias para executar uma aplicação.

Estrutura básica de um Dockerfile:

Um Dockerfile consiste em uma série de instruções em formato de texto, onde cada instrução representa uma etapa na criação da imagem. Vamos explorar algumas instruções comuns:

Instrução FROM: Especifica a imagem base a partir da qual a imagem personalizada será construída. Por exemplo, FROM ubuntu:latest utiliza a imagem base mais recente do Ubuntu.

Instrução RUN: Executa comandos durante o processo de construção da imagem. Por exemplo, RUN apt-get update && apt-get install -y python3 atualiza os pacotes do sistema e instala o Python 3.

Instrução COPY ou ADD: Copia arquivos e diretórios do host para dentro da imagem. Por exemplo, COPY . /app copia todos os arquivos do diretório atual para o diretório /app dentro da imagem.

Instrução WORKDIR: Define o diretório de trabalho para as instruções subsequentes. Por exemplo, WORKDIR /app define o diretório de trabalho como /app.

Instrução EXPOSE: Especifica as portas em que o contêiner estará ouvindo em tempo de execução. Por exemplo, EXPOSE 8000 expõe a porta 8000 no contêiner.

Instrução CMD ou ENTRYPOINT: Define o comando padrão a ser executado quando o contêiner for iniciado. Por exemplo, CMD ["python3", "app.py"] executa o arquivo app.py usando o interpretador Python 3.

Exemplo prático:

Vamos criar um Dockerfile para uma aplicação Flask simples que responde a uma requisição HTTP com uma mensagem "Olá, Docker!".

# Escolhendo uma imagem base
FROM python:3.9-slim
# Definindo o diretório de trabalho
WORKDIR /app
# Copiando arquivos para o contêiner
COPY requirements.txt .
COPY app.py .


# Instalando as dependências
RUN pip install --no-cache-dir -r requirements.txt

# Expondo a porta da aplicação
EXPOSE 8000

# Definindo o comando padrão
CMD ["python", "app.py"]

Neste exemplo, usamos a imagem base oficial do Python 3.9. Definimos o diretório de trabalho como /app, copiamos o arquivo requirements.txt e app.py para dentro da imagem, instalamos as dependências e expomos a porta 8000. Por fim, definimos o comando padrão

Compartilhe
Comentários (1)
Caio Sebastião
Caio Sebastião - 25/08/2023 08:59

Ajudou bastante, obrigado!