【问题标题】:Docker ADD command produces 'cannot find the file' errorDocker ADD 命令产生“找不到文件”错误
【发布时间】:2019-10-05 01:55:22
【问题描述】:

我正在尝试使用 Visual Studio 中的 docker-compose 项目类型将我的几个微服务移动到 docker 容器中。

我还有 Service Fabric 项目,所以我必须将 Service Fabric SDK 安装到我的 docker 容器中。

这就是我为实现这一目标所做的(我的 dockerfile(s)):

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base
WORKDIR /app
EXPOSE 80

...

WORKDIR /temp

ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp #C:\TEMP\vs_buildtools.exe

...

其余代码无关紧要,因为它与 ADD 命令在线崩溃。 我通过 Ctrl+F5 运行此命令后输出的错误:

3>Step 4/11 : ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp
3>Service 'bmt.microservices.snowforecastcenter' failed to build: ADD failed: CreateFile \\?\C:\ProgramData\Docker\tmp\docker-builder567273413\temp: The system cannot find the file specified.

我不明白我做错了什么以及“系统找不到文件”是什么意思,因为我只是从互联网上加载文件并将其放入我新创建的 \temp 文件夹中(链接有效,我检查了)。

有人知道这可能与什么有关吗?

【问题讨论】:

    标签: docker .net-core docker-compose microservices visual-studio-2019


    【解决方案1】:

    好的,我不小心通过将注释移到下一行解决了这个问题。

    从这里:

    ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp #C:\TEMP\vs_buildtools.exe
    

    到这里:

    ADD https://aka.ms/vs/15/release/vs_buildtools.exe /temp
    #C:\TEMP\vs_buildtools.exe
    

    然后我在官方网站 (https://docs.docker.com/engine/reference/builder/#/from) 上表示您不能拥有内联 cmets,因为它们被视为参数:

    Docker 将以 # 开头的行视为注释,除非该行是有效的解析器指令。行中任何其他位置的 # 标记都被视为参数。

    我希望这将帮助其他刚接触 Docker 的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 2016-03-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      相关资源
      最近更新 更多