Описание
Docker API v1.37 "build" endpoint возвращает ошибку no basic auth credentials
У меня есть несколько репозиториев ECR, я запускаю *Экземпляр 1008 *, которому назначена роль профиля экземпляра с полными разрешениями на ECR
.
Я запускаю демон docker на удаленном экземпляре EC2, оба экземпляра имеют полные разрешения для ECR.
Я пытаюсь выполнить операцию сборки с помощью Docker API, Dockerfile
включает в себя оператор FROM
, который указывает на одно из изображений в одном из моих репозиториев ECR.
Вот что япытаюсь сделать.
password=$(aws ecr get-login --no-include-email --output text --region us-east-2 | awk '{printf $6}')
registryAuth=$(echo -n '{"username": "AWS", password: "'$password'", "serveraddress": "https://my_aws_account.dkr.ecr.us-east-2.amazonaws.com/v2/"}'| base64 -w0)
Я пытался использовать различные опции для server
https://my_aws_account.dkr.ecr.us-east-2.amazonaws.com/v1/
https://my_aws_account.dkr.ecr.us-east-2.amazonaws.com/
https://my_aws_account.dkr.ecr.us-east-2.amazonaws.com/v2/
curl -v -X POST --unix-socket /var/run/docker.sock -H "Content-Type: application/json" -H "X-Registry-Auth: $registryAuth" -H "Content-Type:application/tar" --data-binary '@Dockerfile.tar.gz' http://localhost:2375/v1.37/build
Я получаю ту же ошибку
* upload completely sent off: 188 out of 188 bytes
< HTTP/1.1 200 OK
< Api-Version: 1.39
< Content-Type: application/json
< Docker-Experimental: false
< Ostype: linux
< Server: Docker/18.09.3 (linux)
< Date: Thu, 07 Mar 2019 16:02:27 GMT
< Transfer-Encoding: chunked
<
{"stream":"Step 1/1 : FROM my_aws_account.dkr.ecr.us-east-2.amazonaws.com/slicer_base:latest"}
{"stream":"\n"}
{"errorDetail":{"message":"Get https://my_aws_account.dkr.ecr.us-east-2.amazonaws.com/v2/slicer_base/manifests/latest: no basic auth credentials"},"error":"Get https://my_aws_account.dkr.ecr.us-east-2.amazonaws.com/v2/slicer_base/manifests/latest: no basic auth credentials"}
* Connection #0 to host localhost left intact
Do iнужно передать aws ecr get-login
или aws ecr get-authorization-token
в password
из registryAuth
, должен ли он быть закодирован в base64?
Я пробовал оба варианта aws ecr get-login
и aws ecr get-authorization-token
, нииз них работалидля меня.
Вот моя dockerd
начальная конфигурация: /usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
Выход docker version
:
Client:
Version: 18.09.3
API version: 1.39
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 06:40:58 2019
OS/Arch: linux/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 18.09.3
API version: 1.39 (minimum version 1.12)
Go version: go1.10.8
Git commit: 774a1f4
Built: Thu Feb 28 05:59:55 2019
OS/Arch: linux/amd64
Experimental: false
Выход docker info
:
Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 2
Server Version: 18.09.3
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: nvidia runc
Default Runtime: nvidia
Init Binary: docker-init
containerd version: e6b3f5632f50dbc4e9cb6288d911bf4f5e95b18e
runc version: 12f6a991201fdb8f82579582d5e00e28fba06d0a-dirty
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.4.0-1060-aws
Operating System: Ubuntu 16.04.4 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.795GiB
Name: ip-10-220-3-78
ID: YZ6T:HXM4:XJNW:GUDY:XA6J:U2KX:R7CJ:TQHE:TPXY:HCNA:R4VL:M3AZ
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Product License: Community Engine
WARNING: API is accessible on http://0.0.0.0:2375 without encryption.
Access to the remote API is equivalent to root access on the host. Refer
to the 'Docker daemon attack surface' section in the documentation for
more information: https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
WARNING: No swap limit support
Эта проблема связана с другой проблемой / вопросом, который был открыт здесь