无法通过从plink调用的.sh脚本将docker镜像推送到本地注册表 - 没有基本身份验证凭据

时间:2016-12-06 15:15:49

标签: docker docker-registry plink

通过在本地注册表中推送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

有人有任何建议吗?

1 个答案:

答案 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上遇到了类似的问题,并通过上述步骤解决了这个问题。

相关问题