解决Docker文件中的COPY命令中的目录路径错误

时间:2019-03-24 17:54:59

标签: docker docker-compose dockerfile docker-machine

我在ubuntu 16.04之上的docker文件中使用COPY命令。我收到错误提示,即使目录存在也没有这样的文件或目录。在下面的docker文件中,我要将工作空间目录中存在的目录“ auth”复制到docker映像(位于/ home / ubuntu路径),然后构建映像。

FROM ubuntu:16.04
RUN apt-get update
COPY /home/ubuntu/authentication/workspace   /home/ubuntu
WORKDIR /home/ubuntu/auth

1 个答案:

答案 0 :(得分:0)

Dockerfile data.location = newValue.location data.transactions = newValue.transactions 命令只能引用上下文中的文件-Dockerfile的当前位置,也称为COPY 所以您现在有一些选择:

  1. ,如果有可能在构建之前将/ home / ubuntu / authentication / workspace /目录内容复制到项目内部的某个位置(因此现在它将包含在Dockerfile上下文中,您可以通过{ {1}})。但有时您不想要它。

  2. 而不是复制目录,而是通过卷将其绑定到您的容器:

运行容器时,添加一个.选项:

COPY ./path/to/content /home/ubuntu

请注意,已设计了卷,因此您在容器dir(/ home / ubuntu)内进行的任何更改都会影响主机端的绑定目录(/ home / ubuntu / authentication / workspace),反之亦然。

  1. 我在here上发现了一个问题:这个家伙正在强迫Dockerfile接受他的上下文-他坐在/ home / ubuntu / authentication / workspace /目录中,并在其中运行

    -v

现在,在他的Dockerfile中,他可以将/ home / ubuntu / authentication / workspace称为上下文(docker run [....] -v /home/ubuntu/authentication/workspace:/home/ubuntu [...]