gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 18:07:23 36 4
gpt4 key购买 nike

我在 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

最佳答案

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

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

  • 运行容器时,添加 -v选项:
    docker run [....] -v /home/ubuntu/authentication/workspace:/home/ubuntu [...]

    请注意,卷的设计使您在容器目录(/home/ubuntu)中所做的任何更改都会影响主机端(/home/ubuntu/authentication/workspace)上的绑定(bind)目录,反之亦然。
  • 我发现了一个超过 here 的东西:这个人正在强制 Dockerfile 接受他的上下文——他坐在/home/ubuntu/authentication/workspace/目录中,并在那里运行
    docker build . -f /path/to/Dockerfile

  • 所以现在在他的 Dockerfile 中,他可以将/home/ubuntu/authentication/workspace 作为他的上下文( .)

    关于docker - 解决 docker 文件中 COPY 命令中的目录路径错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55326779/

    36 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com