dockerlogin – 错误存储凭据 – 写入权限错误
作为Bamboo构build作业的一部分,我正在运行docker login
命令。 命令文本通过aws ecr get-login
调用获得,并在子shell中执行。
此命令失败, Error saving credentials: error storing credentials - err: exit status 1, out: write permissions error
作为Bamboo构build的一部分运行时出现Error saving credentials: error storing credentials - err: exit status 1, out: write permissions error
,但完全相同的命令在terminal上运行,构build代理的Mac ,它成功了。
使用terminal:
-
aws ecr get-login
成功并返回docker login
命令文本 -
docker login -u ... -p ... -e none ...
成功并login - KeyChain中的ECR URL有logging
-
~/.docker/config.json
有一个条目
使用竹子:
-
aws ecr get-login
成功并返回docker login
命令文本 -
docker login -u ... -p ... -e none ...
与上述错误失败 - KeyChainlogging被提供给所有的应用程序没有任何区别“
-
chmod 777 ~/.docker/config.json
没有区别
Bamboo构build和terminal会话都在同一个用户builduser
。 whoami
是两个相同的。 stat ~/.docker/config.json
对于两者都是相同的 – 对于两者都是可写的。
你能想出更多的方法来发现竹子运行的内容和我在terminal中的区别吗? 上面的错误,与docker login
相关,无处可docker login
。
我不得不删除我现有的config.json文件。 它不会覆盖或修改我的。
我在尝试使用ECR获取在具有IAM实例configuration文件的AWS EC2实例的Jenkinspipe道中运行的Docker容器时发现此问题。 我发现了许多关于创build,推送和从ECR拉取实例的信息,但没有运行。
目标是安装特定的Ruby和Ansible版本的Docker容器,以及像Gem文件一样的各种依赖项。
我发现下面的Jenkinsfile工作:
pipeline { agent any environment { DOCKER_CONFIG = "${WORKSPACE}/docker.config" } stages { stage('Build') { steps { sh("rm -rf ${DOCKER_CONFIG}") sh("eval \$(aws ecr get-login --no-include-email | sed 's|https://||')") withDockerContainer(args: '-v ${WORKSPACE}:/scripts -v ${HOME}/.aws:/root/.aws', image: 'image_name:latest') { sh("ruby script.rb") } } } } }
笔记:
- Dockerlogin命令会改变.docker / config.json文件,并且在某些情况下出现写入错误。 我的猜测是,它不能处理文件中的现有configuration和错误的一些组合。 使用DOCKER_CONFIG环境variables使其在本地创build一个新的configuration文件。
- 删除$ {DOCKER_CONFIG}目录可能不是必要的,可能需要一些额外的时间。 不过,我认为这可能会避免在那里存储的证书陈旧的情况。
- 这必须安装: https : //github.com/awslabs/amazon-ecr-credential-helper
- 我在这里find了eval语句解决scheme: Jenkins Amazon ECR:没有基本的authentication凭证
- 如何使用docker容器运行Kong API Gateway?
- docker-compose在以普通用户身份运行时出现错误“ImportError:No module named ssl_match_hostname”
- 如何将不同端口上运行的多个Docker Web服务器容器链接到不同的URLpath?
- 从私有registry运行容器与docker群
- 如何将Docker IP设置为与您的计算机(本地)IP地址相同
- 在不同的环境下运行docker-build不一致
- 将Dockerregistry中的图像克隆到另一个
- docker-compose什么时候构build一个本地图像,什么时候从docker hub拉出来?
- 在已知好的Docker文件中返回一个非零代码:2每个单一命令