簡體   English   中英

使用 ssh-agent 調用 docker-compose

[英]Calling docker-compose with ssh-agent

我正在嘗試運行 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

相反,我只是收到此錯誤。 我究竟做錯了什么?

首先,仔細檢查私鑰是否正確復制到您的圖像/root/.ssh文件夾中(使用正確的權限, chmod 600 )。

您可以在腳本中添加 ssh -Tv git@github.com 以檢查您是否已通過 GitHub 正確驗證。

由於 app_git_rsa不是SSH 密鑰的默認名稱,請檢查您的本地 root 帳戶(在 docker 之外,克隆正在工作的地方)是否有/root/.ssh/config文件,該文件確實提到了要使用的密鑰。
如果這樣做,您也需要在圖像中復制該文件(通過Dockerfile

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM