Sign inSign up

mullerhub/hello-app

By mullerhub

•Updated about 1 year ago

Imagem FastAPI (multi-arch) para projeto DevOps/GitOps. Buildada via GitHub Actions

Image
0

644

mullerhub/hello-app repository overview

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⁠

Tag summary

Content type

Image

Digest

sha256:e7adc818f…

Size

50.1 MB

Last updated

about 1 year ago

docker pull mullerhub/hello-app:4a0770b