衆所周知,Docker鏡像製作命令ADD和COPY,不能訪問Dockerfile上下文之外的路徑,可是我又想要從本機或者局域網主機中複製文件,當然你可以假設HTTP或者FPT服務,然後使用ADD命令。但是我都覺得麻煩,我就想利用局域網中現有的ssh服務來實現這個目的,因此經過一凡研究搜索,終於實現了這個小目標,不多說廢話上代碼:
COPY --chown=root:root ssh/id* /.ssh/ RUN ls -l /.ssh \ && scp -o 'StrictHostKeyChecking no' -i /.ssh/id_rsa root@192.168.0.113:/home/user1/downloads/LibreOffice/LibreOffice* /tmp \ && rm /.ssh/id*
稍微囉嗦一下,上述scp命令中,通過-o選項傳遞的 'StrictHostKeyChecking no' 含義爲跳過讓用戶確認接受ssh主機的指紋。