【问题标题】:Pulling Docker image from private protected repository within bash script从 bash 脚本中的私有受保护存储库中提取 Docker 映像
【发布时间】:2022-06-23 22:39:43
【问题描述】:

我正在尝试编写一个 bash 脚本来自动设置多容器环境。 每个容器都是根据从受保护的私有存储库中提取的图像构建的。

问题是当脚本第一次调用docker-compose up 时,对存储库的访问被拒绝,就像它不知道我在运行脚本之前已经正确地完成了docker login。 如果我手动docker pull 一个图像,那么当脚本尝试构建其容器时,该图像不再是问题。但是,当它必须从 Dockerfile 定义中单独使用 docker pull 时,它会得到 access denied

考虑到我希望这个脚本可以移植到其他开发人员的环境中,我怎样才能让它能够使用每个开发人员已经在其计算机上使用docker login 设置的凭据访问存储库?

非常感谢!

【问题讨论】:

  • 它似乎应该工作。你能分享你的脚本和错误信息吗?您可以编辑个人信息,只要它保持一致以帮助您。

标签: docker authentication docker-compose repository script


【解决方案1】:

你可以这样做:

#!/bin/bash
cat ~/pwd.txt | docker login <servername> -u <username> --password-stdin
docker pull

这会从 pwd.txt 读取密码并登录到指定的服务器。 如果您有多个服务器要登录,可以尝试:

#!/bin/bash
serverlist="server1.com server2.com"
for server in $serverlist; do
    cat ~/${server}_pwd.txt | docker login $server -u <username> --password-stdin
done
docker pull

这会从 server1.com_pwd.txt 等文件中读取密码。

【讨论】:

    猜你喜欢
    • 2021-01-05
    • 2015-09-03
    • 2023-03-07
    • 1970-01-01
    • 2020-04-27
    • 1970-01-01
    • 1970-01-01
    • 2021-10-31
    • 1970-01-01
    相关资源
    最近更新 更多