【问题标题】:Having trouble understanding volumes in Docker using Docker Toolbox in Windows during a build在构建期间使用 Windows 中的 Docker Toolbox 无法理解 Docker 中的卷
【发布时间】:2018-07-16 18:00:39
【问题描述】:

所以我一直遇到的错误是:

COPY failed: stat /mnt/sda1/var/lib/docker/tmp/docker-builderXXXXXXXXX/MyProjectFolder/MyProjectFile.csproj

我进行了很多谷歌搜索,我看到的常见问题是文件存在的路径问题以及对路径的简单调整可以解决问题。在我的情况下,当我在容器内运行 bash 并且 ls /mnt 它完全是空的。没有 sda1 什么的。

所以我有两个问题:

  1. 构建过程中的哪个步骤负责在容器内配置/安装此 docker-builder 文件夹?如果我知道发生这种情况的地方,我可能会弄清楚为什么它不起作用。
  2. 假设我无法正常工作,我想也许我可以自己挂载文件夹,但 docker build 命令没有 -v 开关,所以我也不知道如何实现。

希望有人可以在此处朝正确的方向轻推我。我可以看到问题,我只是不知道我需要处理什么配置/设置/什么才能让它工作。

编辑:当我继续闲逛时,我注意到docker build 命令的第一行是Sending build context to Docker daemon xxxMB。大小与项目文件夹的大小相匹配,因此“Docker 守护程序”正在获取适当的文件。我已经尝试过执行RUN find / -name "*.csproj"(以及其他一些搜索)命令,但它什么也没返回。守护进程是否负责在容器中挂载上下文?什么会导致它(默默地)失败?

【问题讨论】:

  • 看起来你自己已经回答了这个问题,但是(1)docker build 本身将命令行命名的目录复制到 Docker; (2) 它在任何意义上都不是 Docker 卷,因此您不能将其挂载到容器中。

标签: windows docker docker-toolbox


【解决方案1】:

所以,一旦我注意到“Doc​​ker 守护进程”,我就开始使用该线程并了解 ADD 命令,该命令似乎是将构建上下文复制到容器的命令。我在 Dockerfile 中的任何地方都没有看到它,所以我试了一下,突然我可以访问容器内的项目文件。我调整了失败的 COPY 命令以使用此路径并按预期构建所有内容。我不确定为什么 Visual Studio 项目模板不为我执行此操作,但无论如何。

很高兴能跨过这个障碍。

【讨论】:

    猜你喜欢
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多