2016-08-03 14 views
0

私はDockerコンテナ(不可能)でBitBucketからプライベートレポジトリを複製しようとしています。私はちょうどこれを試してみたいと思うので、私は私の公開鍵と秘密鍵をコンテナにコピーしました。危険なドッカーコンテナ - クローズプライベートレポ

docker exec -i web git clone [email protected]:user/repo.git 

そして、私はこの取得:私は実行する場合、注意点として

Cloning into 'repo'... 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

を:私は、(これはAnsibleコマンドの簡体版ですFWICT)以下を実行します

docker exec -i -t web git clone [email protected]:user/repo.git 

私はTTYを取得して、SSH秘密鍵のパスワードを要求されます(これはAnsibleでこれを行うことはできません)、そのレポが複製されます。

Dockerコンテナ内の私的なリポジトリを-tなしでどのようにクローンすることができますか?あるいは、誰かがAnsibleとコンテナ内のプライベートレポをクローンする方法を知っていますか?

+0

あなたは正しくキーを設定していないようですね - あなたは上の関連する権限を設定しています'〜/ .ssh'と'〜/ .ssh/id_rsa'はコンテナ内にありますか? (FWIWでは、コンテンツをコピーするのではなく、 '〜/ .ssh'をマウントするだけでよいかもしれません) –

+0

id_rsaとid_rsa.pubの両方が400なので、残念なことにアクセス権は問題ではないと思います!しかし、マウントはより良いアイデアのように聞こえる。 – ellioseven

+0

パスワード保護されたキーが必要な理由はありますか?これを処理するために、おそらく 'expect'モジュールを使用しようとするかもしれません。 –

答えて

1

私はそうのように私の仕事で(http://dchua.com/2016/01/15/ssh-agent-forwarding-with-your-docker-container)を転送するSSHエージェントを使用して周りの仕事を見つけるために管理:

- set_fact: 
    ssh_auth_sock: "{{ lookup('env','SSH_AUTH_SOCK') }}" 

- name: Create container 
    docker_container: 
    name: "my_container" 
    image: "my_image" 
    ports: 
     - 80 
    volumes: 
     - "{{ playbook_dir }}/www:/var/www" 
     - "{{ ssh_auth_sock }}:/ssh-agent" 
    env: 
     SSH_AUTH_SOCK: /ssh-agent 

- name: Add container to inventory 
    add_host: 
    name: "web" 
    ansible_connection: docker 

- name: Clone Repository 
    git: 
    repo: "[email protected]:user/repo.git" 
    dest: "/var/www/html" 
    accept_hostkey: true 
    delegate_to: "web" 
関連する問題