Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

push docker

Olá,
na aula 5 quando ele vai fazer o push do docker, ele retorna as seguintes mensagens:

isabela@Isa:~/iac-alura-beanstalk/iac-beanstalk-alura/env/Prod$ sudo docker push 545746531372.dkr.ecr.us-west-2.amazonaws.com/producao:v1
The push refers to repository [545746531372.dkr.ecr.us-west-2.amazonaws.com/producao]
e68208c0a49e: Preparing
58233cb83791: Preparing
bc0d601255c0: Preparing
04f5108127a0: Preparing
8fb25d8c169a: Preparing
e34f5f307007: Preparing
c5502c1bca89: Preparing
50d7990edeb8: Preparing
77c91e0c4ce9: Waiting
b72242dc7fb0: Waiting
fbb12b2180e7: Waiting
7aabebb55065: Preparing
cb9eb84282d0: Waiting
no basic auth credentials

TENTEI DESSA MANEIRA PARA VER SE VAI TBM, PORÉM, TAMBÉM NÃO FUNCIONOU:

isabela@Isa:~/iac-alura-beanstalk/iac-beanstalk-alura/env/Prod$ docker push 545746531372.dkr.ecr.us-west-2.amazonaws.com/producao:v1
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.47/images/545746531372.dkr.ecr.us-west-2.amazonaws.com/producao/push?tag=v1": dial unix /var/run/docker.sock: connect: permission denied

SE PUDEREM ME AJUDAR.

2 respostas

Olá! esse erro acontece porque o Docker precisa de autenticação no Amazon ECR antes de você conseguir dar o push.
O no basic auth credentials indica que o login não foi feito, e o permission denied mostra que o usuário que está executando o comando não tem permissão para acessar o socket do Docker.

Vamos por partes:

Fazer login no ECR

Antes do push, rode o comando de login no ECR (substitua a região pela correta, no seu caso é us-west-2):

aws ecr get-login-password --region us-west-2 | docker login --username AWS --password-stdin 545746531372.dkr.ecr.us-west-2.amazonaws.com

Se der certo, vai aparecer:

Login Succeeded

Construir a imagem com a tag correta

Garanta que a imagem foi criada com a tag completa do repositório ECR:

docker build -t 545746531372.dkr.ecr.us-west-2.amazonaws.com/producao:v1 .

Dar o push

Agora sim:

docker push 545746531372.dkr.ecr.us-west-2.amazonaws.com/producao:v1

Sobre o erro de permissão (permission denied)

Isso aparece porque você rodou docker push sem sudo, e seu usuário não faz parte do grupo docker.
Você pode resolver de duas formas:

  • Rodando sempre com sudo:

    sudo docker push ...
    
  • Ou adicionando seu usuário ao grupo docker (melhor solução):

    sudo usermod -aG docker $USER
    

    Depois, faça logout e login novamente para aplicar a mudança.

Se depois disso ainda aparecer no basic auth credentials, significa que o aws configure não foi feito corretamente (as credenciais da AWS não estão setadas). Nesse caso, configure de novo:

aws configure
solução!

Então, agora foi!!

Mas eu tive que abrir outro terminal, e executei os seguintes comandos:

sudo usermod -aG docker $USER

newgrp docker

groups

(tive que fazer isso pq meu docker não estava como root, e por mais que eu já havia tentando fazer essa alteração, somente funcionou quando abri um terminal novo)

ai depois disso reexecutei o ecr, a tag da imagem e o push do docker, e foi sucesso.

obrigada pela ajuda!!!