Я следил за этим сообщением, чтобы попытаться загрузить образ Docker из AWS ECR, но получаю следующие ошибки:
If I do:
#!/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}
Затем я получаю следующую ошибку:
$ 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."
Хотя я просто «запросил» токен.
И если я сделаю это:
#!/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}
Я получаю следующую ошибку:
$ error parsing HTTP 404 response body: invalid character 'p' after top-level value: "404 page not found\n"
Изображение находится в ECR, и я могу получить его, если сделаю docker login ...
, а затем docker pull 2xxxxxxxxxx.dkr.ecr.us-east-1.amazonaws.com/nexus-pro:2.13.0-np-1.0
Я не уверен, что я делаю неправильно здесь .. Любая помощь очень ценится!