Skip to main content

Guia Detalhado: Criar e Enviar Imagens Docker para o Magalu Cloud Container Registry (MCR)

Este documento descreve o processo para criar uma imagem Docker e enviá-la ao Magalu Cloud Container Registry (MCR), o registro de contêineres privado da Magalu Cloud.


Pré-requisitos

  1. Conta na Magalu Cloud: Acesso ao Portal Magalu Cloud
  2. Instalação do CLI do Magalu Cloud
  3. Docker instalado:
    • Instale o Docker em sua máquina local.
    • Valide a instalação:
      docker --version

Passo 1: Criar uma Imagem Docker

1.1 Escrever um Dockerfile

Crie um arquivo Dockerfile no diretório do seu projeto. Exemplo para uma aplicação Node.js:

# Usa uma imagem base leve
FROM node:18-alpine

# Define o diretório de trabalho
WORKDIR /app

# Copia os arquivos do projeto
COPY package.json package-lock.json ./
RUN npm install --production

# Copia o código-fonte
COPY . .

# Expõe a porta da aplicação
EXPOSE 3000

# Comando de inicialização
CMD ["node", "index.js"]

1.2 Construir a Imagem Localmente

Execute o comando abaixo para construir a imagem:

docker build -t minha-aplicacao-node:1.0.0 .
  • Explicação:
    • -t: Tag da imagem (formato: <nome>:<versão>).
    • .: Diretório onde o Dockerfile está localizado.

1.3 Testar a Imagem Localmente

Execute um contêiner temporário para validar:

docker run -d -p 3000:3000 --name app-test minha-aplicacao-node:latest

Acesse http://localhost:3000 para verificar se a aplicação está funcionando.


Passo 2: Autenticar no Magalu Cloud Container Registry (MCR)


Passo 3: Taggear a Imagem para o MCR

Exemplo:

docker tag minha-aplicacao-node:1.0.0 container-registry.br-se1.magalu.cloud/minha-aplicacao-node:1.0.0

Passo 4: Enviar a Imagem para o MCR

Exemplo:

docker push container-registry.br-ne1.magalu.cloud/meu-projeto/minha-aplicacao-node:1.0.0

Saída Esperada:

The push refers to repository [container-registry.br-ne1.magalu.cloud/meu-projeto/minha-aplicacao-node]
a1b2c3d4e5f6: Pushed
1.0.0: digest: sha256:1234...5678 size: 1234

Passo 5: Verificar a Imagem no MCR

Via CLI:

curl -H "Authorization: Bearer $ACCESS_TOKEN" https://container-registry.br-ne1.magalu.cloud/meu-projeto/minha-aplicacao-node/tags/list

Dicas e Boas Práticas

  1. Nomenclatura de Tags:
    • Evite usar latest. Prefira versões semânticas (ex: 1.0.0, 1.1.0-rc1).
  2. Limpeza Local:
    docker rmi container-registry.br-ne1.magalu.cloud/meu-projeto/minha-aplicacao-node:1.0.0  # Remove a imagem local
  3. Segurança:
    • Use docker scan para verificar vulnerabilidades antes do push.
    • Revogue tokens de acesso não utilizados.

Troubleshooting

ErroSolução
denied: access forbiddenVerifique as credencias do token.
failed to connect to MCRConfira a conectividade de rede e o DNS.
unauthorized: authentication requiredRefaça o login com docker login.

Referências

  1. Documentação Oficial do MCR
  2. CLI da Magalu Cloud

Para suporte técnico adicional, contate-nos via suporte@magalu.cloud ou no Portal de Suporte.