Sign inSign up

2idcombr/2id-ci-runner

By 2idcombr

•Updated about 1 year ago

CI/CD da 2ID, com todas as ferramentas necessárias para build, deploy

Image
Integration & delivery
0

1.2K

2idcombr/2id-ci-runner repository overview

⁠🚀 2ID CI Runner - Custom Docker Image

⁠📋 Visão Geral

Este repositório contém a imagem Docker customizada para CI/CD da 2ID, com todas as ferramentas necessárias para build, deploy e gerenciamento de infraestrutura.

⁠🛠️ Ferramentas Incluídas

⁠Desenvolvimento:
  • ✅ Node.js 20.18.1 - Runtime JavaScript
  • ✅ npm - Gerenciador de pacotes Node.js
  • ✅ yarn - Gerenciador de pacotes alternativo
  • ✅ npx - Executor de pacotes Node.js
⁠DevOps:
  • ✅ Docker 20.10.16 - Containerização
  • ✅ Azure CLI - Gerenciamento Azure
  • ✅ Terraform 1.4.4 - Infraestrutura como código
  • ✅ kubectl - Gerenciamento Kubernetes
⁠Comandos Customizados:
  • ✅ docker-2id - Operações Docker (push para Docker Hub e ACR)
  • ✅ runner-2id - Deploy e infraestrutura (plan, deploy, destroy)
  • ✅ sync-docker-to-acr.sh - Sincronização Docker Hub → ACR
  • ✅ run-terraform.sh - Script Terraform global
  • ✅ Makefile - Makefile global para automação
⁠Utilitários:
  • ✅ jq - Parsing JSON
  • ✅ curl, wget, git - Utilitários essenciais
  • ✅ bash, python3 - Scripting
  • ✅ make - Ferramenta de build e automação

⁠🏗️ Como Usar

⁠1. Build da Imagem:
# Build local
docker build -f Dockerfile.ci -t 2idcombr/2id-ci-runner:latest .

# Build e push para Docker Hub
./build-ci-image.sh latest
⁠2. Comandos Customizados:
⁠docker-2id - Operações Docker:
# Push para Docker Hub e ACR
docker-2id push musicbrand-scheduling-service 1.0.0

# Ver status das ferramentas
docker-2id status

# Ajuda
docker-2id help
⁠runner-2id - Deploy e Infraestrutura:
# Deploy completo via Terraform
runner-2id deploy musicbrand-scheduling-service 1.0.0

# Plan Terraform (ver mudanças sem aplicar)
runner-2id plan musicbrand-scheduling-service 1.0.0

# Destroy infraestrutura
runner-2id destroy musicbrand-scheduling-service 1.0.0

# Ver status das ferramentas
runner-2id status

# Ajuda
runner-2id help
⁠3. Usar no Pipeline:
# GitLab CI/CD - Pipeline Simplificado
publish-docker-prod:
  image: 2idcombr/2id-ci-runner:v1.1.6
  services:
    - docker:20.10.16-dind
  script:
    - docker build -t "2idcombr/${APP_NAME}:${APP_VERSION}" .
    - docker-2id push "$APP_NAME" "$APP_VERSION"

deploy-azure-prod:
  image: 2idcombr/2id-ci-runner:v1.1.6
  script:
    - APP_VERSION=$(jq -r '.version' package.json)
    - runner-2id deploy "$APP_NAME" "$APP_VERSION"

⁠🔧 Configuração

⁠Variáveis de Ambiente Necessárias:
# Azure (para login automático)
AZURE_CLIENT_ID=seu-client-id
AZURE_CLIENT_SECRET=seu-client-secret
AZURE_TENANT_ID=seu-tenant-id
AZURE_SUBSCRIPTION_ID=seu-subscription-id
AZURE_ACR_NAME=seu-registry-name

# Docker Hub
DOCKER_HUB_TOKEN=seu-docker-hub-token

# AWS (para Terraform backend)
AWS_ROOT_ACCESS_KEY=sua-access-key
AWS_ROOT_SECRET_ACCESS_KEY=sua-secret-key

⁠📁 Estrutura do Repositório

2id-ci-runner/
├── Dockerfile.ci                    # ✅ Dockerfile da imagem customizada
├── docker-entrypoint.sh            # ✅ Script de entrada
├── azure-auto-login.sh            # ✅ Script de login automático Azure
├── sync-docker-to-acr.sh          # ✅ Script de sincronização Docker Hub → ACR
├── docker-2id                     # ✅ Comando customizado para Docker
├── runner-2id                     # ✅ Comando customizado para Deploy
├── run-terraform.sh               # ✅ Script Terraform global
├── Makefile                       # ✅ Makefile global
├── build-ci-image.sh              # ✅ Script para build e push
├── README.md                      # ✅ Este arquivo
├── DOCKER-2ID-COMMAND.md          # ✅ Documentação do comando docker-2id
└── docs/                          # ✅ Documentação adicional

⁠🚀 Benefícios

⁠Performance:
  • ⚡ Build 3x mais rápido - sem instalação de dependências
  • ⚡ Cache otimizado - imagem pré-construída
  • ⚡ Menos downloads - ferramentas já instaladas
⁠Confiabilidade:
  • 🔒 Versões fixas - Terraform 1.4.4, Docker 20.10.16, Node.js 20.18.1
  • 🔒 Testes prévios - imagem testada localmente
  • 🔒 Menos falhas - sem problemas de instalação
⁠Manutenibilidade:
  • 🛠️ Centralizada - todas as ferramentas em um lugar
  • 🛠️ Versionada - tags específicas para cada versão
  • 🛠️ Reutilizável - pode ser usada em outros projetos

⁠🎯 Casos de Uso

⁠1. Build de Aplicações Node.js:
# Node.js já instalado
node --version  # v20.18.1
npm --version   # 9.8.1
npm install
npm run build
⁠2. Deploy de Infraestrutura:
# Terraform já instalado
terraform version  # v1.4.4
terraform init
terraform plan
terraform apply
⁠3. Gerenciamento de Containers:
# Docker já instalado
docker --version  # 20.10.16
docker build -t myapp:latest .
docker push myapp:latest
⁠4. Gerenciamento Azure:
# Azure CLI já instalado
az --version  # 2.50.0
az login --service-principal  # Login automático
az aks get-credentials --resource-group myRG --name myCluster
⁠5. Gerenciamento Kubernetes:
# kubectl já instalado
kubectl version --client  # v1.28.0
kubectl get pods
kubectl apply -f deployment.yaml
⁠6. Comandos Customizados:
⁠docker-2id - Operações Docker:
# Push para Docker Hub e ACR
docker-2id push myapp 1.0.0
# Faz: push para Docker Hub → tag para ACR → push para ACR

# Status das ferramentas
docker-2id status
# Mostra: versões de todas as ferramentas instaladas
⁠runner-2id - Deploy e Infraestrutura:
# Deploy completo via Terraform
runner-2id deploy myapp 1.0.0
# Faz: terraform plan + terraform apply + verificação

# Plan Terraform (ver mudanças sem aplicar)
runner-2id plan myapp 1.0.0
# Faz: terraform plan (sem aplicar)

# Destroy infraestrutura
runner-2id destroy myapp 1.0.0
# Faz: terraform destroy (remove infraestrutura)

# Status das ferramentas
runner-2id status
# Mostra: versões de todas as ferramentas instaladas

⁠🔍 Testes

⁠Teste Local:
# Build da imagem
docker build -f Dockerfile.ci -t 2idcombr/2id-ci-runner:latest .

# Testar ferramentas
docker run --rm 2idcombr/2id-ci-runner:latest \
  sh -c "docker --version && az --version && terraform version && kubectl version --client && node --version && npm --version"
⁠Logs Esperados:
🚀 Iniciando CI Runner customizado...
🐳 Configurando Docker-in-Docker...
✅ Docker está disponível!
🔍 Verificando ferramentas instaladas...
Docker version 20.10.16
Azure CLI 2.50.0
Terraform v1.4.4
kubectl v1.28.0
jq-1.6
v20.18.1
9.8.1
🔐 Configurando Azure...
✅ Login no Azure realizado com sucesso!
✅ CI Runner customizado pronto!

⁠🎉 Resultado Final

⁠Imagem Ultra-Completa:
  • ✅ Node.js 20.18.1 - para build de aplicações
  • ✅ Docker 20.10.16 - para containerização
  • ✅ Azure CLI - para gerenciamento Azure
  • ✅ Terraform 1.4.4 - para infraestrutura
  • ✅ kubectl - para Kubernetes
  • ✅ make - para automação e build
  • ✅ Login automático - Azure configurado
  • ✅ Comandos customizados - docker-2id e runner-2id
⁠Pipeline Otimizado:
  • ⚡ Build mais rápido - ferramentas pré-instaladas
  • 🔒 Mais confiável - ferramentas pré-testadas
  • 🛠️ Mais flexível - Node.js para scripts
  • 🚀 Comandos simplificados - docker-2id e runner-2id
  • 🚀 Pronto para produção - tudo incluído

⁠📚 Documentação Adicional


2ID CI Runner - Imagem Docker customizada para CI/CD otimizado! 🚀

Tag summary

Content type

Image

Digest

sha256:af56d1fd0…

Size

411.5 MB

Last updated

about 1 year ago

docker pull 2idcombr/2id-ci-runner:v1.3.0