Imagem FastAPI (multi-arch) para projeto DevOps/GitOps. Buildada via GitHub Actions
644
Aplicação FastAPI para Projeto DevOps (CI/CD e GitOps) Esta é a imagem de contêiner oficial para a aplicação hello-app, uma API FastAPI simples usada em um projeto de demonstração de CI/CD e GitOps.
O propósito principal desta imagem é servir como o artefato de deploy que é automaticamente buildado pelo GitHub Actions e implantado em um cluster Kubernetes via ArgoCD.
Principais Características ✨ Imagem Multi-Arquitetura: Esta imagem é buildada para múltiplas arquiteturas, incluindo linux/amd64 (para servidores e runners de nuvem) e linux/arm64 (para desenvolvimento local em Macs M1/M2/M3).
🤖 Builds Automatizados (CI/CD): As imagens são buildadas e publicadas automaticamente pelo GitHub Actions. Não faça push manual para este repositório.
🏷️ Tags Dinâmicas: As tags são geradas automaticamente a partir do SHA do commit do repositório da aplicação, garantindo que cada versão da imagem seja única e rastreável.
Como Usar (Teste Manual) Você pode executar esta imagem localmente para testar a aplicação.
Puxar a imagem (substitua [TAG] pelo SHA de commit desejado, ou use latest): docker pull mullerhub/hello-app:latest
Executar o contêiner: A aplicação dentro do contêiner roda na porta 80. O comando abaixo mapeia a porta 8080 da sua máquina local para a porta 80 do contêiner.
docker run -d -p 8080:80 --name hello-app mullerhub/hello-app:latest
Testar:
curl http://localhost:8080/ Resposta Esperada:
JSON {"message":"Meu CI/CD com ArgoCD funciona e confirmado"}
Uso no Projeto (Kubernetes & GitOps) No contexto do projeto DevOps, esta imagem não é executada manualmente. Ela é referenciada no arquivo deployment.yaml dentro do repositório de manifestos => https://github.com/MullerHub/manifest-fastapi-devops
O fluxo é o seguinte:
O GitHub Actions builda a imagem e a envia para o Docker Hub com uma nova tag.
O GitHub Actions atualiza a tag image: no deployment.yaml do repositório de manifestos.
O ArgoCD detecta a mudança e implanta a nova versão no Kubernetes.
Exemplo de trecho do deployment.yaml:
YAML containers: - name: hello-app image: mullerhub/hello-app:0920bf5 # <- Esta tag é atualizada pela CI ports: - containerPort: 80 Repositórios do Projeto Repositório da Aplicação (FastAPI): https://github.com/MullerHub/FastAPI_DevOps Repositório de Manifestos (GitOps): https://github.com/MullerHub/manifest-fastapi-devops
Content type
Image
Digest
sha256:e7adc818f…
Size
50.1 MB
Last updated
about 1 year ago
docker pull mullerhub/hello-app:4a0770b