Sign inSign up

lzocateli/devops

By lzocateli

•Updated about 1 month ago

Image
0

533

lzocateli/devops repository overview

⁠DEVOPS

Docker Hub Version Base Platforms Repository code license Build

Imagem multifuncional para automacao, IaC, CI local e fluxos de conteudo, unificando Python, Azure CLI, Terraform, Ansible, GitHub CLI, Node.js/Marp e utilitarios opcionais de ML no mesmo ambiente.

⁠Referencia da imagem

ItemValor
Imagemlzocateli/devops:<tag>
Tag recomendada (GPU)lzocateli/devops:cuda-12.6.3
Tag recomendada (CPU)lzocateli/devops:cpu
Imagem base padraonvidia/cuda:12.6.3-cudnn-runtime-ubuntu24.04
Node.js24.15.0
npm12.0.2
Terraform1.15.8
Plataformaslinux/amd64
Usuario padraoroot (necessario para ferramentas administrativas e shell de automacao)
Entry point/usr/local/bin/devops-entrypoint
Diretorio de trabalho/workspace
Codigo-fontehttps://github.com/lzocateli/containers/tree/main/devops
Documentacaohttps://github.com/lzocateli/containers/tree/main/devops

⁠Conteudo e finalidade

⁠Incluido
  • Python 3.12 com uv e venv pre-aquecido em /opt/venv.
  • Azure CLI, Terraform 1.15.8 e Ansible (ansible-dev-tools, passlib).
  • GitHub CLI (gh) com versao pinada por GH_VERSION.
  • sqlcmd (go-sqlcmd Microsoft) com versao pinada por SQLCMD_VERSION.
  • Node.js 24.15.0 LTS, npm 12.0.2, npx, Corepack, Marp CLI, ffmpeg/ffprobe e dependencias de Chromium headless.
  • zsh, oh-my-posh, zsh-autosuggestions, sshpass, openssh-client, jq e git.
  • Opcional: PyTorch (cu126 ou cpu) + openai-whisper com INSTALL_ML=true.
  • Opcional: Google APIs (google-api-python-client e auth libs) com INSTALL_GOOGLE=true.
⁠Contratos incorporados de Node.js e Terraform

Esta imagem incorpora os contratos anteriormente publicados pelas imagens node e terraform:

  • Node.js para workloads JavaScript/TypeScript, com /workspace como diretorio de trabalho e sem portas expostas. O hardening de libgnutls30, a remocao de pacotes Debian desnecessarios e o npm 12.0.2 fazem parte da imagem unificada.
  • Terraform e executado pelo binario oficial em /usr/local/bin/terraform, sem providers, backend, estado remoto ou credenciais preconfigurados.
  • Angular CLI nao e instalado globalmente; projetos Angular devem usar suas dependencias ou npx.
  • A imagem node especializada continua indicada para workloads que precisam somente do runtime Node ou de uma imagem menor.
⁠Nao incluido
  • Configuracoes sensiveis do usuario (tokens, credenciais, chaves).
  • Persistencia de dados aplicacionais no container por padrao.
  • Politica de latest fixa para producao.

⁠Inicio rapido

docker pull lzocateli/devops:cuda-12.6.3
docker run --rm -it lzocateli/devops:cuda-12.6.3 zsh

Exemplo minimo executavel (CPU):

docker run --rm -it \
  -v "$PWD:/workspace" -w /workspace \
  lzocateli/devops:cpu zsh

⁠Docker Compose

services:
  devops:
    image: lzocateli/devops:cuda-12.6.3
    restart: unless-stopped
    working_dir: /workspace
    volumes:
      - /caminho/absoluto/no/host:/workspace
      - /caminho/absoluto/gh-config:/root/.config/gh
    command: ["zsh"]

⁠Configuracao

⁠Variaveis de ambiente
VariavelObrigatoriaSecretaPadraoDescricao
Env_HttpProxyNaoNaonenhumProxy corporativo em build (host:porta).
Env_NoProxyNaoNaonenhumBypass de proxy no build.
TZNaoNaoAmerica/Sao_PauloTimezone da imagem.
INSTALL_ML (build arg)NaoNaofalseLiga instalacao de PyTorch e Whisper.
INSTALL_GOOGLE (build arg)NaoNaotrueLiga instalacao de libs Google API.
NODE_VERSION (build arg)NaoNao24.15.0Versao do runtime Node.js copiado do estagio oficial.
NPM_VERSION (build arg)NaoNao12.0.2Versao global do npm.
TERRAFORM_VERSION (build arg)NaoNao1.15.8Versao do binario oficial do Terraform.
GH_VERSION (build arg)NaoNao2.92.0Versao do GitHub CLI.
SQLCMD_VERSION (build arg)NaoNao1.10.0Versao do go-sqlcmd.
BASE_IMAGE (build arg)NaoNaonvidia/cuda:12.6.3-cudnn-runtime-ubuntu24.04Define base CUDA ou CPU.
⁠Portas

Esta imagem nao expoe portas por contrato.

⁠Persistencia e mounts
Caminho no conteinerModoConteudoBackup necessario
/workspacerwProjeto e artefatos de trabalho do usuarioConforme projeto montado
/root/.config/ghrwSessao do GitHub CLIRecomendado
/root/.azurerwSessao do Azure CLIRecomendado
/root/.sshroChaves SSH do host (opcional)Sim

Para projetos Node e Terraform, monte o codigo em /workspace. O cache npm, os providers Terraform e os arquivos de estado permanecem sob responsabilidade do consumidor.

⁠Secrets

Forneca secrets somente em runtime, por volume seguro ou variavel de ambiente injetada no executor. Nao versionar segredos no repositorio e nao usar ARG/ENV no Dockerfile para valores sensiveis.

⁠Inicializacao e ciclo de vida

  • O entrypoint devops-entrypoint garante PATH consistente e executa hooks de /docker-entrypoint.d/*.sh por ordem.
  • O comando padrao e zsh.
  • O processo principal executa em foreground e recebe sinais do runtime via exec no entrypoint.
  • O entrypoint preserva os comandos Node e Terraform; eles podem ser chamados diretamente, por exemplo node --version, npm ci, npx, terraform version e terraform plan.

⁠Seguranca

  • A imagem executa como root por objetivo operacional (toolbox de automacao).
  • Use volumes somente para diretorios necessarios e, quando possivel, com modo somente leitura.
  • Restrinja acesso de rede do container quando nao houver necessidade de internet.
  • Trate tokens de gh, az e chaves SSH como dados sensiveis.
  • Atualize a base e dependencias em ciclos regulares para reduzir exposicao a CVEs.

⁠Build local

Build GPU (padrao):

docker build \
  --pull \
  --tag lzocateli/devops:cuda-12.6.3 \
  devops

Para explicitar as versoes incorporadas:

docker build \
  --build-arg NODE_VERSION=24.15.0 \
  --build-arg NPM_VERSION=12.0.2 \
  --build-arg TERRAFORM_VERSION=1.15.8 \
  --tag lzocateli/devops:cuda-12.6.3 \
  devops

Build CPU sem ML e sem Google APIs:

docker build \
  --pull \
  --build-arg BASE_IMAGE=ubuntu:24.04 \
  --build-arg INSTALL_ML=false \
  --build-arg INSTALL_GOOGLE=false \
  --tag lzocateli/devops:cpu-slim \
  devops

⁠Tags e compatibilidade

TagMutabilidadeCompatibilidadeUso recomendado
cuda-12.6.3ImutavelGPU NVIDIA (quando disponivel) e CPUProducao e automacao com ML
cpuImutavelHosts sem GPUProducao sem aceleracao CUDA
cpu-slimImutavelHosts sem GPU, sem stack ML/GoogleAutomacao IaC e CI local

Nao use latest como unica referencia em ambientes criticos.

⁠Validacao

Antes da publicacao, confirmar:

  • .gitignore e .dockerignore presentes e alinhados;
  • .env, secrets e backups fora do Git e fora do contexto Docker;
  • .git excluido do contexto Docker;
  • analise do Dockerfile com BuildKit;
  • smoke test de shell (zsh) e ferramentas-chave (python, gh, az, ansible, sqlcmd);
  • smoke test de Node (node --version, npm --version, npx) e Terraform (terraform version);
  • inspecao de vulnerabilidades, SBOM e proveniencia;
  • labels OCI e tag final coerentes com o release.

⁠Publicacao

Use Actions > Publicar imagem de container > Run workflow com:

  • context_path: devops;
  • image_name: devops;
  • image_tag: tag imutavel (ex.: cuda-12.6.3);
  • dockerfile: Dockerfile;
  • platforms: linux/amd64.

Para a imagem devops, use context_path: devops, image_name: devops e uma tag imutavel que identifique a base e as versoes incorporadas. Terraform faz parte da imagem unificada e nao possui mais uma release separada neste repositorio.

⁠Operacao

  • Persista configuracoes de CLI por volumes (/root/.config/gh, /root/.azure, /root/.ssh).
  • Atualize por troca de tag imutavel e rollback por retorno da tag anterior.
  • Logs padrao seguem stdout/stderr do runtime do container.

⁠Troubleshooting

SintomaCausa provavelVerificacaoCorrecao
gh auth perde sessaoSem volume para config do GHverificar bind em /root/.config/ghmontar volume persistente
az login precisa repetir loginSem volume de config Azureverificar bind em /root/.azuremontar volume persistente
torch sem CUDAContainer sem --gpus all ou host sem runtime NVIDIAnvidia-smi no host/containerusar tag CUDA + runtime NVIDIA
Build falha no proxyProxy/bypass incorretorevisar Env_HttpProxy e Env_NoProxyajustar build args de proxy
npm ci falha por lockfilelockfile fora de sincroniacomparar package.json e lockfileregenerar o lockfile usando npm 12.0.2
terraform: command not foundImagem/tag incorreta ou comando sobrescritoexecutar terraform versionusar a tag devops e o entrypoint padrao
Erros de provider TerraformProvider nao inicializadoexecutar terraform init em /workspaceinicializar e validar o backend

⁠Limitacoes conhecidas

  • Sem suporte oficial multi-arquitetura para esta imagem no catalogo atual.
  • Nao possui HEALTHCHECK, pois e uma imagem toolbox interativa sem processo de servico unico.
  • A imagem e maior que a imagem especializada node, pois inclui toda a toolbox devops, incluindo Terraform.
  • O usuario padrao e root para manter compatibilidade com ferramentas administrativas; use uma imagem especializada quando isolamento nao-root for requisito.

⁠Licencas e fontes

ComponenteVersaoLicencaFonte
Conteudo original deste repositorioAtualMIThttps://github.com/lzocateli/containers
Imagem base CUDA12.6.3-cudnn-runtime-ubuntu24.04Conforme upstreamhttps://hub.docker.com/r/nvidia/cuda
Azure CLIVariavel no buildConforme upstreamhttps://learn.microsoft.com/cli/azure
GitHub CLIGH_VERSIONMIThttps://github.com/cli/cli
go-sqlcmdSQLCMD_VERSIONMIThttps://github.com/microsoft/go-sqlcmd
Node.js24.15.0MIThttps://github.com/nodejs/node/blob/main/LICENSE
npm12.0.2ISChttps://github.com/npm/cli
Terraform1.15.8MPL-2.0https://github.com/hashicorp/terraform

O badge MIT descreve apenas o conteudo original deste repositorio. Componentes de terceiros permanecem sob suas respectivas licencas. Consulte https://github.com/lzocateli/containers/blob/main/LICENSING.md.

⁠Historico de alteracoes

Mudancas observaveis desta imagem devem ser registradas por tag imutavel no fluxo de release.

O Dockerfile do devops e o contrato unificado para os consumidores que precisam da toolbox completa. Terraform agora faz parte dessa imagem e nao e mantido como imagem independente neste repositorio.

Tag summary

Content type

Image

Digest

sha256:2a3e7f65b…

Size

2.7 GB

Last updated

about 1 month ago

docker pull lzocateli/devops:cpu-ubuntu24.04