COPY不会将我的文件添加到Docker容器中

时间:2018-04-18 14:41:36

标签: docker

我正在尝试将私钥docker-upload添加到docker容器中:

FROM centos:7

RUN yum -y -q install openssh-clients && \
  yum clean all && \
  rm -rf /var/cache/yum

RUN \
  mkdir -p ~/.ssh && \
  touch ~/.ssh/known_hosts && \
  ssh-keyscan -p 2022 -t rsa hostname > ~/.ssh/known_hosts

COPY docker-upload ~/.ssh/

RUN ls -all ~/.ssh

使用

构建时

docker build --no-cache -t privateregistry.com/build-containers:upload .

我知道〜/ .ssh目录为空:

Step 5/7 : COPY docker-nerds-upload ~/.ssh/
 ---> 2bafa09dd03c
Step 6/7 : RUN ls -all ~/.ssh
 ---> Running in 1c74fc1d0e14
total 8
drwxr-xr-x 2 root root 4096 Apr 18 14:19 .
dr-xr-x--- 3 root root 4096 Apr 18 14:19 ..
-rw-r--r-- 1 root root    0 Apr 18 14:19 known_hosts

为什么COPY docker-upload ~/.ssh/不将文件docker-upload复制到docker容器中的~/.ssh目录中?

2 个答案:

答案 0 :(得分:2)

  

dest是绝对路径,或相对于WORKDIR的路径   源将被复制到目标容器中。

     

Reference(Dockerfile COPY)

不支持COPY的Tilde(~)扩展。

答案 1 :(得分:1)

不知何故COPY不喜欢~作为路径。使用绝对路径

COPY docker-upload /root/.ssh