通过在本地注册表中推送docker镜像我遇到了问题。
我有一个本地注册表,例如some.registry.com
。
我的脚本看起来像(build.sh
):
#!/bin/bash
# some commands
# build image
# tag image
docker push some.registry.com/my/imagename
如果我从当前系统运行它(我在ubuntu 16.04上运行),这个脚本工作正常:
sudo ./build.sh
但我需要从Windows机器上的另一个脚本调用此脚本。
我用这个plink
此脚本看起来像(other_script.bat
):
REM do something
call D:\install\plink.exe -ssh -v -t user@xxx.xxx.xxx.xxx -pw PASS "sudo -S <<< 'PASS' /home/user/scr/build.sh"
build.sh
中的所有命令都正常工作(构建映像,标记映像e.t.c)。但是,当docker push
被调用时,我会收到一条消息no basic auth credentials
有人有任何建议吗?
答案 0 :(得分:0)
您是否尝试过将凭据放在计算机本地的文件中?在C:\ Users \ .docker下创建json.config文件,或在$ HOME / .docker / config.json上的Linux上创建json.config文件,并将以下内容复制到该文件
{
"auths": {
"your.registry.com": {
"auth": "aGVja2VhOiFoZWNrb25vXXXX"
}
}
}
请注意,auth字符串是BASE64编码的用户名密码。如果你有一个随机的Linux docker主机,你已经登录到注册表,然后你也可以从主目录中获取整个json.config文件。
旁注:我们在io.fabric docker-plugin上遇到了类似的问题,并通过上述步骤解决了这个问题。