使用ssh-agent调用docker-compose

时间:2018-05-23 01:35:19

标签: git docker github ssh docker-compose

我正在尝试运行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

相反,我只是得到了这个错误。我做错了什么?

2 个答案:

答案 0 :(得分:1)

首先,仔细检查私有密钥是如何/如果在图像/root/.ssh文件夹中正确复制的(使用正确的chmod 600)。

您可以在脚本中添加一个ssh -Tv git@github.com来检查GitHub是否正确认证了。

由于app_git_rsa 不是 SSH密钥的默认anme,请检查您的本地root帐户(克隆程序所在的docker之外)是否有/root/.ssh/config文件,其中提到了哪个使用的关键 如果您这样做,则需要在图片中复制该文件(通过Dockerfile

答案 1 :(得分:1)