我正在尝试使用Visual Studio中的docker-compose项目类型将少数微服务移至docker容器。
我也有Service Fabric项目,因此必须将Service Fabric SDK安装到我的Docker容器中。
这就是我要做的(我的dockerfile):
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文件夹中(链接有效,我检查了。)
有人知道这可能与什么有关吗?
答案 0 :(得分:3)
好的,我不小心通过将注释移至下一行来解决了问题。
从此:
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)上发了言,您无法插入内嵌注释,因为它们被视为参数:
Docker将以#开头的行视为注释,除非该行是有效的解析器指令。一行中其他任何地方的#标记均被视为参数。
我希望这会对其他Docker新手有所帮助。