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

问题描述 投票:1回答:1

我在ubuntu 16.04上的docker文件中使用COPY命令。我收到错误,因为目录不存在这样的文件或目录。在下面的docker文件中,我想将工作空间目录中的目录“auth”复制到docker镜像(在path / home / ubuntu中),然后构建映像。

FROM ubuntu:16.04
RUN apt-get update
COPY /home/ubuntu/authentication/workspace   /home/ubuntu
WORKDIR /home/ubuntu/auth
docker docker-compose dockerfile docker-machine
1个回答
0
投票

一个Dockerfile COPY命令只能引用上下文下的文件 - Dockerfile的当前位置,也就是.,所以你现在有几个选项:

  1. 如果可以在构建之前将/ home / ubuntu / authentication / workspace /目录内容复制到项目内的某个位置(现在它将包含在您的Dockerfile上下文中,您可以通过COPY ./path/to/content /home/ubuntu访问它),它可能会很棒。但有时候你不想要它。
  2. 而不是复制目录,通过卷将其绑定到您的容器:

运行容器时,添加-v选项:

docker run [....] -v /home/ubuntu/authentication/workspace:/home/ubuntu [...]

请注意,卷的设计是因为您在容器dir(/ home / ubuntu)中所做的任何更改都会影响主机端的绑定目录(/ home / ubuntu / authentication / workspace),反之亦然。

  1. 我在here上找到了一些东西:这个人正在强迫Dockerfile接受他的上下文 - 他正坐在/ home / ubuntu / authentication / workspace /目录中,并在那里运行 docker build . -f /path/to/Dockerfile

所以现在在他的Dockerfile中他可以引用/ home / ubuntu / authentication / workspace作为他的上下文(.

© www.soinside.com 2019 - 2024. All rights reserved.