2015-09-19 5 views
6

में नहीं मिला मैं एक साधारण Dockerfile है, बिल्कुल के रूप में नीचे:ssh-KeyScan Dockerfile

FROM ubuntu:14.04 

RUN apt-get update 
RUN apt-get -y upgrade 

RUN mkdir -p /root/.ssh 
RUN touch /root/.ssh/known_hosts 

RUN ssh-keyscan github.com >> /root/.ssh/known_hosts 

चल रहा का परिणाम:

docker build -no-cache -t testimage . 

है:

Step 5 : RUN ssh-keyscan github.com >> /root/.ssh/known_hosts 
---> Running in e11ef5962a11 
/bin/sh: 1: ssh-keyscan: not found 

उत्तर

14

आप होगा पहले एसएसएच स्थापित करने की जरूरत है।

RUN apt-get -yq update && \ 
    apt-get -yqq install ssh 

फिर, ssh-keyscan सहित विभिन्न ssh आदेश, उपलब्ध होगा।

मैंने अपने sshd image Dockerfile में यही किया।
मैंने सर्वर पर स्थानीय रूप से कुछ परीक्षण करने के लिए इसे add localhost to my .ssh/known_hosts पर उपयोग किया।

pjotr-dolphin द्वारा commented below के रूप में:

आप ssh-keyscan के बाद ही कर रहे हैं, openssh-client ssh पैकेज की तुलना में छोटे पदचिह्न है।

+0

बढ़िया! यह मेरे लिए नहीं हुआ था कि एसएसएच पहले से स्थापित नहीं था। लेकिन डॉकर में एसएसएच को एंटी-प्रैक्टिस माना जाता है, मुझे लगता है कि यह समझ में आता है। धन्यवाद! – KevinArrrrrg

+1

@ केविन एरर्रग हाँ, डॉकर इंजन होस्ट से चलने वाले कंटेनर तक पहुंचने के लिए, एक 'डॉकर निष्पादन बाश' पर्याप्त है। लेकिन किसी अन्य मशीन से चलने वाले कंटेनर तक पहुंचने के लिए, एसएसएच एक वैध श्रोता है, जिसे यद्यपि स्थापित किया जाना है। – VonC

+2

यदि आप केवल ssh-keyscan के बाद हैं, तो openssh-client के पास ssh पैकेज से छोटे पदचिह्न हैं। –

संबंधित मुद्दे