Técnicas Avançadas de Rotulagem
Rotulagem de Imagens Multi-arquitetura
## Construir imagens multi-arquitetura
docker buildx create --name multiarch
docker buildx use multiarch
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t myapp:multi-arch \
--push .
graph LR
A[Docker Buildx] --> B[AMD64]
A --> C[ARM64]
A --> D[Outras Arquiteturas]
Estratégias de Rotulagem Condicional
Script de Rotulagem Dinâmica
#!/bin/bash
## Gerar rótulos com base em condições
VERSION=$(git describe --tags)
BRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$BRANCH" == "main" ]; then
docker tag myapp:latest myapp:stable-${VERSION}
elif [ "$BRANCH" == "develop" ]; then
docker tag myapp:latest myapp:beta-${VERSION}
fi
| Tipo de Metadado |
Formato do Rótulo |
Exemplo |
| Hash do Commit |
<versão>-<commit> |
1.0.0-a1b2c3d |
| Número da Construção |
<versão>-build<num> |
1.0.0-build123 |
| Carimbo de Data/Hora |
<versão>-<timestamp> |
1.0.0-20230615 |
Rotulagem Automatizada com CI/CD
Exemplo GitHub Actions
steps:
- name: Construir e Rotular Imagem Docker
run: |
docker build \
--build-arg VERSION=${{ github.ref_name }} \
-t myapp:${{ github.sha }} \
-t myapp:${{ github.ref_name }}
Rotulagem Aprimorada de Segurança
graph TD
A[Imagem Docker] --> B{Varredura de Segurança}
B --> |Aprovado| C[Rotular com Selo de Segurança]
B --> |Reprovado| D[Rejeitar Imagem]
Script de Rotulagem de Segurança
#!/bin/bash
## Verificar imagem e rotular com base no status de segurança
trivy image myapp:latest
if [ $? -eq 0 ]; then
docker tag myapp:latest myapp:secure-$(date +%Y%m%d)
fi
Técnicas de Rotulagem Inteligente
Rotulagem de Compatibilidade de Versão
## Rotular imagens com informações de compatibilidade
docker tag myapp:latest myapp:1.0.0-compatible-k8s-1.22
docker tag myapp:latest myapp:1.0.0-compatible-postgres-13
Rotulagem para Otimização de Desempenho
| Prefixo do Rótulo |
Finalidade |
Exemplo |
opt- |
Construção Otimizada |
myapp:opt-1.0.0 |
perf- |
Variante de Desempenho |
myapp:perf-1.0.0 |
Com o LabEx, você pode dominar essas técnicas avançadas de rotulagem de imagens Docker por meio de práticas em laboratório e módulos de aprendizado abrangentes.