Tirare l'image del banco da AWS ECR utilizzando l'API remota

Ho seguito questo post per cercare di scaricare un'image Docker da AWS ECR ma ho i seguenti errori:

Se faccio:

#!/bin/sh repository="2xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/nexus-pro" tag="2.13.0-np-1.0" ecr_token=$(aws ecr get-authorization-token --output text --query authorizationData[].authorizationToken | cut -d: -f2) docker_login=$(echo "{\"username\":\"AWS\",\"password\":\"${ecr_token}\", \"auth\":\"\",\"email\":\"none\"}" | base64) curl -X POST -d "" -H "X-Registry-Auth: ${docker_login}" http://${ip_address}:4243/images/create?fromImage=${repository}&tag=${tag_source} 

Poi ottengo il seguente errore:

 $ error parsing HTTP 403 response body: invalid character 'Y' looking for beginning of value: "Your Authorization Token has expired. Please run 'aws ecr get-login' to fetch a new one." 

Anche se ho appena "richiesto" il segno.

E se faccio questo:

 #!/bin/sh repository="2xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/nexus-pro" tag="2.13.0-np-1.0" ecr_token=$(aws ecr get-login | awk '{print ($6)}') docker_login=$(echo "{\"username\":\"AWS\",\"password\":\"${ecr_token}\", \"auth\":\"\",\"email\":\"none\"}" | base64) curl -X POST -d "" -H "X-Registry-Auth: ${docker_login}" http://${ip_address}:4243/images/create?fromImage=${repository}&tag=${tag_source} 

Ho il seguente errore:

 $ error parsing HTTP 404 response body: invalid character 'p' after top-level value: "404 page not found\n" 

L'image è su ECR e posso tirarlo se faccio l' docker login ... docker pull 2xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/nexus-pro:2.13.0-np-1.0 docker login ... e poi il docker pull 2xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/nexus-pro:2.13.0-np-1.0

Non sono sicuro di quello che sto facendo male qui .. Qualsiasi aiuto è molto apprezzato!

L'authentication di base è supportta solo su HTTPS. Il client docker non invierà intestazioni di base di tipo quando spinge / tirando un registro su HTTP. Ciò è fatto dal disegno per impedire che le persone inviino le loro credenziali su canali insicuri. L'utilizzo di SSL dovrebbe sbarazzarsi del problema.

Provate a utilizzare qui sotto:

 https://${ip_address}:4243/images/create?fromImage=${repository}&tag=${tag_source} 

Oppure, abilitare un certificato SSL per l'istanza da cui stai tirando l'image. Tis potrebbe aiutarti. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/SSL-on-an-instance.html