Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

🚀 AzCopy Docker - Versão Customizada

Build Status Docker Hub Docker Image Size

Imagem Docker otimizada e customizada do Azure AzCopy, baseada em Alpine Linux com as últimas versões estáveis do AzCopy. Projetada especificamente para automação de sincronização de arquivos entre Azure Storage.

🎯 Características

  • Sempre atualizada: Build automático com a última versão estável do AzCopy
  • Multi-arquitetura: Suporte para AMD64 e ARM64
  • Imagem mínima: Baseada em Alpine Linux (~50MB)
  • Segurança: Execução com usuário não-root
  • CI/CD Ready: Otimizada para pipelines de automação
  • Verificação diária: Workflow automatizado para detectar novas versões

📦 Repositórios da Imagem

  • Docker Hub: dfsrj/docker-azcopy
  • GitHub: ghcr.io/diogofrj/docker-azcopy

🏷️ Tags Disponíveis

  • latest - Última versão estável
  • 10.x.x - Versão específica do AzCopy
  • 10.x - Última versão minor
  • 10 - Última versão major

🚀 Uso Básico

Comando simples

docker run --rm dfsrj/docker-azcopy:latest --version

Sincronização de arquivos

docker run --rm -v $PWD:/workspace \
 dfsrj/docker-azcopy:latest \
 sync "/workspace/local-folder" "https://account.blob.core.windows.net/container?SAS_TOKEN" \
 --recursive --delete-destination

Sincronização FileShare para Blob (caso de uso principal)

docker run --rm \
 -e SAS_ORIGEM="se=2025年07月16日T14:59:59Z&sp=r..." \
 -e SAS_DESTINO="se=2025年07月16日T14:59:59Z&sp=rwcl..." \
 dfsrj/docker-azcopy:latest \
 sync "https://source.file.core.windows.net/share?$SAS_ORIGEM" \
 "https://dest.blob.core.windows.net/container?$SAS_DESTINO" \
 --from-to=FileBlob --recursive --delete-destination

🔧 Uso Avançado

Script personalizado

#!/bin/bash
# script-sync.sh
SOURCE_URL="https://source.file.core.windows.net/share?$SAS_ORIGEM"
DEST_URL="https://dest.blob.core.windows.net/container?$SAS_DESTINO"
docker run --rm \
 -v $PWD:/workspace \
 -e SAS_ORIGEM="$SAS_ORIGEM" \
 -e SAS_DESTINO="$SAS_DESTINO" \
 dfsrj/docker-azcopy:latest \
 sync "$SOURCE_URL" "$DEST_URL" \
 --from-to=FileBlob \
 --recursive \
 --delete-destination \
 --log-level=INFO

Docker Compose

version: '3.8'
services:
 azcopy-sync:
 image: dfsrj/docker-azcopy:latest
 environment:
 - SAS_ORIGEM=${SAS_ORIGEM}
 - SAS_DESTINO=${SAS_DESTINO}
 volumes:
 - ./scripts:/scripts:ro
 command: |
 sync "https://source.file.core.windows.net/share?$$SAS_ORIGEM" 
 "https://dest.blob.core.windows.net/container?$$SAS_DESTINO"
 --from-to=FileBlob --recursive --delete-destination

🎛️ Kubernetes Integration

CronJob para sincronização automática

apiVersion: batch/v1
kind: CronJob
metadata:
 name: azcopy-sync
spec:
 schedule: "0 */6 * * *" # A cada 6 horas
 jobTemplate:
 spec:
 template:
 spec:
 containers:
 - name: azcopy-sync
 image: dfsrj/docker-azcopy:latest
 command: ["azcopy", "sync"]
 args:
 - "https://source.file.core.windows.net/share?$(SAS_ORIGEM)"
 - "https://dest.blob.core.windows.net/container?$(SAS_DESTINO)"
 - "--from-to=FileBlob"
 - "--recursive"
 - "--delete-destination"
 env:
 - name: SAS_ORIGEM
 valueFrom:
 secretKeyRef:
 name: azcopy-tokens
 key: sas-origem
 - name: SAS_DESTINO
 valueFrom:
 secretKeyRef:
 name: azcopy-tokens
 key: sas-destino
 restartPolicy: OnFailure

🔍 Verificação de Versão

# Verificar versão atual
docker run --rm dfsrj/docker-azcopy:latest --version
# Saída esperada:
# azcopy version 10.x.x

🛠️ Build Local

# Build da imagem
docker build -t meu-azcopy .
# Test local
docker run --rm meu-azcopy --version

📋 Comandos Úteis

Listar conteúdo

docker run --rm dfsrj/docker-azcopy:latest \
 list "https://account.blob.core.windows.net/container?SAS_TOKEN"

Copy com progresso

docker run --rm -v $PWD:/workspace dfsrj/docker-azcopy:latest \
 copy "/workspace/file.txt" "https://account.blob.core.windows.net/container/file.txt?SAS_TOKEN" \
 --log-level=INFO

Sync com filtros

docker run --rm dfsrj/docker-azcopy:latest \
 sync "source" "destination" \
 --include-pattern="*.pdf;*.doc*" \
 --exclude-pattern="temp/*"

🔒 Segurança

  • Execução com usuário não-root (UID/GID 1000)
  • Scan de vulnerabilidades automatizado com Trivy
  • Imagem baseada em Alpine Linux (minimal attack surface)
  • Certificados CA atualizados

📊 Monitoramento

Logs estruturados

docker run --rm dfsrj/docker-azcopy:latest \
 sync "source" "destination" \
 --log-level=INFO \
 --output-type=json

Métricas de performance

docker run --rm dfsrj/docker-azcopy:latest \
 sync "source" "destination" \
 --cap-mbps=100 \
 --log-level=INFO

🤝 Contribuição

  1. Fork do repositório
  2. Crie uma branch para sua feature
  3. Commit suas mudanças
  4. Push para a branch
  5. Abra um Pull Request

📄 Licença

MIT License - veja o arquivo LICENSE para detalhes.

🆘 Suporte

📈 Changelog

Latest AzCopy: 10.x.x

  • ✅ Build automático com última versão estável
  • ✅ Multi-arquitetura (AMD64/ARM64)
  • ✅ Otimizações de performance
  • ✅ Segurança aprimorada

Mantido por: Diogo Fernandes - iachero
Baseado em: Azure AzCopy

About

🐳 Tiny Dockerized AzCopy (Azure Storage data transfer utility) inside Alpine Linux 🐧 (~10MB)

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /