【问题标题】:Calling docker-compose with ssh-agent使用 ssh-agent 调用 docker-compose
【发布时间】:2020-04-23 00:17:09
【问题描述】:

我正在尝试运行 docker-compose 应用程序并从私有 GitHub 存储库构建。

version: '3'

services:
    my-awesome-app:
        build: git@github.com:Tarocco/my-awesome-app.git:development
    # TODO

当我手动克隆它时,它按预期工作:

# ssh-agent bash -c 'ssh-add /root/.ssh/app_git_rsa && git clone git@github.com:Tarocco/my-awesome-app.git'
Identity added: /root/.ssh/app_git_rsa (/root/.ssh/app_git_rsa)
Cloning into 'my-awesome-app'...
remote: Counting objects: 68, done.
remote: Compressing objects: 100% (60/60), done.
remote: Total 68 (delta 4), reused 67 (delta 3), pack-reused 0
Receiving objects: 100% (68/68), 310.12 KiB | 0 bytes/s, done.
Resolving deltas: 100% (4/4), done.

但是当我运行以下(拉钩脚本的一部分)时,我希望我的 GitHub 部署密钥允许 docker-compose 和 docker 访问我的私有存储库:

# ssh-agent bash -c 'ssh-add /root/.ssh/app_git_rsa && docker-compose build && docker-compose down && docker-compose up -d'
Identity added: /root/.ssh/app_git_rsa (/root/.ssh/app_git_rsa)
Building my-awesome-app
ERROR: error fetching: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
: exit status 128

相反,我只是收到此错误。我做错了什么?

【问题讨论】:

    标签: git docker github ssh docker-compose


    【解决方案1】:

    首先,仔细检查私钥是如何/是否正确复制到您的图像/root/.ssh 文件夹中的(正确的,chmod 600)。

    您可以在脚本中添加 ssh -Tv git@github.com 以检查您是否已通过 GitHub 正确验证。

    由于 app_git_rsa 不是 SSH 密钥的默认名称,请检查您的本地 root 帐户(在 docker 外部,克隆工作的地方)是否有一个 /root/.ssh/config 文件,其中确实提到了哪个密钥使用。
    如果你这样做了,你也需要在你的图片中复制那个文件(通过你的Dockerfile

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 2020-08-14
        • 2015-01-18
        • 2020-12-25
        • 2020-08-25
        • 2021-08-28
        • 1970-01-01
        • 2016-04-28
        • 2021-08-23
        • 2020-09-24
        相关资源
        最近更新 更多