我正在运行$\{hcvarAuthorLastName\}
命令作为Bamboo构建作业的一部分。命令文本通过docker login
调用获得并在子shell中执行。
当作为Bamboo构建的一部分运行时,此命令以aws ecr get-login
失败,但完全相同的命令在作为构建代理的Mac上的终端中运行,它成功。
使用终端:
Error saving credentials: error storing credentials - err: exit status 1, out: write permissions error
成功并返回aws ecr get-login
命令文本docker login
成功并登录docker login -u ... -p ... -e none ...
使用Bamboo:
~/.docker/config.json
成功并返回aws ecr get-login
命令文本docker login
因上述错误而失败docker login -u ... -p ... -e none ...
没有任何区别 Bamboo构建和终端会话都发生在同一个用户chmod 777 ~/.docker/config.json
下。 builduser
对两者都是一样的。 whoami
对于两者都是相同的 - 两者都可写。
你能想到更多的方法来发现上下文之间的差异Bamboo运行内置和我在终端中运行吗?上面的错误,与stat ~/.docker/config.json
相关的错误,无法在网上找到。
答案 0 :(得分:1)
我不得不删除现有的config.json文件。它不会覆盖或修改我拥有的那个。
答案 1 :(得分:1)
我在尝试使用ECR在具有IAM实例配置文件的AWS EC2实例上的Jenkins管道中获取Docker容器运行时发现了这个问题。我发现了很多关于从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")
}
}
}
}
}
注意:
答案 2 :(得分:1)
您可以删除文件class NeuralNet2(nn.Module):
def __init__(self):
super(NeuralNet2, self).__init__()
self.input = nn.Linear(2, 40)
self.hiddenLeft = nn.Linear(40, 2)
self.hiddenRight = nn.Linear(40, 2)
self.out = nn.Linear(4, 4)
def forward(self, x):
x = self.input(x)
xLeft, xRight = torch.sigmoid(self.hiddenLeft(x)), torch.sigmoid(self.hiddenRight(x))
x = torch.cat((xLeft, xRight))
x = self.out(x)
return x
:
docker-credential-osxkeychain
答案 3 :(得分:0)
对我来说,最简单的解决方案是在用户主目录内的.docker目录下创建config.json文件:
〜/ home / .docker / config.json
然后,我从服务器上复制了该文件的内容,并从该服务器登录到Docker集线器。
{
"auths": {
"https://index.docker.io/v1/": {
"auth": "SOMEVALUE"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.06.1-ce (linux)"
}
}