Nesta primeira aula, você vai aprender a trabalhar com contêineres utilizando Docker, preparando o ambiente ideal para aplicar conceitos de CI/CD. Também vamos explorar como a inteligência artificial pode ajudar na documentação e otimização de processos com o Gemini Code Assist.
- Criar uma imagem Docker de uma aplicação simples (como uma API em Python).
- Entender e resolver o clássico problema do “na minha máquina funciona”.
- Aprender o que são contêineres e como funcionam as imagens Docker.
- Executar aplicações localmente via Docker Run e Docker-Compose.
- Construir suas próprias imagens personalizadas usando um Dockerfile.
- Utilizar o Docker Compose para uma orquestração básica de múltiplos serviços.
Docker é uma plataforma de código aberto para desenvolvimento, envio e execução de aplicações em contêineres. Fornecendo portabilidade, flexibilidade e escabilidade em qualquer ambiente, seja local ou na nuvem.
- Acessar https://www.docker.com/.
- Clicar em Download Docker Desktop
- Selecionar o sistema operacional
- Instalar.
- Criar arquivo Dockerfile (Arquivo de definição cpm instruções do que vai ser rodado)
- Definir a imagem base que será baixada do Docker Hub. PS: A imagem recomendada é sempre a alpine, visto que a imagem mais leve de programação e plataformas
#FROM [--platform=<platform>] <image> [AS <name>]
FROM python:3.12.11-alpine3.22
- Definir o diretório de trabalho dentro do contêiner
WORKDIR /app
- Copia o arquivo de requisitos e instala as dependências. Usamos --no-cache-dir para evitar o cache do pip, reduzindo o tamanho da imagem
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
- Copia o restante do código da aplicação para o diretório de trabalho
COPY . .
- Expôe a porta que a aplicação FastAPI irá rodar (padrão é 8000)
EXPOSE 8000
- Comando para rodar a aplicação usando uvicorn
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
docker build -t api .
docker rmi api:latest
docker run -p 8000:8000 api
Nesta aula, vamos implementar uma pipeline CI/CD básica no GitLab, usando o projeto Docker criado anteriormente. Você também vai conhecer os principais componentes de uma pipeline e aprender como a IA pode apoiar na criação de testes automatizados.
- Entender o que é CI/CD na prática.
- Explorar os principais componentes de uma pipeline no GitLab: estágios, jobs, runners e o arquivo .gitlab-ci.yml.
- Construir uma pipeline simples com as etapas de build, test e deploy.
- Utilizar variáveis de ambiente e integrar o pipeline com o Docker.
docker compose up
- Instalar gcloud CLI: https://cloud.google.com/sdk/docs/install
gcloud auth login
gcloud config set project PROJECT_ID
gcloud run deploy --port=8000