【问题标题】:Docker Copy Command failsDocker 复制命令失败
【发布时间】:2019-02-16 05:37:17
【问题描述】:

我是 Docker 新手,正在运行 Docker 文件

我的 Docker 文件

FROM microsoft/dotnet:2.2.0-preview1-aspnetcore-runtime AS base 
WORKDIR /app

FROM microsoft/dotnet:2.2.100-preview1-sdk AS build
WORKDIR /DineshVisualStudio/Autofac-interceptor/AutofacModule/Autofac.interface.ConcactFactory
COPY Autofac.Interface.ConcatFactory.csproj project/
WORKDIR /Autofac-interceptor/project
RUN dotnet restore
COPY /Autofac.interface.Concactfactory .
RUN dotnet build -c Release -o /app

FROM build AS publish
RUN dotnet publish -c Release -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["Autofac.Interface.ConcatFactory.exe"]

运行docker build -t myappfactory . 时失败。我在 COPY 命令中尝试了许多路径组合,但没有任何运气。

我正在使用 Visual Studio 2017 并且也安装了 Docker 工具

这是我的文件夹结构 My folder structure with the code having docker file

在运行 docker build -t autofacinterface . 时,我收到一条错误消息:

failed to create file . System cannot find the file specified.

我正在使用 Cmd 从当前工作的 .csproj 文件夹构建 docker。

D:\DineshVisualStudio\Autofac-Interceptor\AutofacModule\Autofac.Interface.ConcatFactory>docker build -t autofacinterfaceconcatfactory .
Sending build context to Docker daemon  4.608kB
Step 1/15 : FROM microsoft/dotnet:2.2.0-preview1-aspnetcore-runtime AS base
---> 2df5940c47f7
Step 2/15 : WORKDIR /app
---> Using cache
---> f4d2190d9b44
Step 3/15 : FROM microsoft/dotnet:2.2.100-preview1-sdk AS build
---> af242cb10bf0
Step 4/15 : WORKDIR /DineshVisualStudio/Autofac- 
interceptor/AutofacModule/Autofac.interface.ConcactFactory
---> Using cache
---> dbf15787395b
Step 5/15 : COPY /Autofac.Interface.ConcatFactory.csproj project/
COPY failed: CreateFile \\?\C:\ProgramData\Docker\tmp\docker- 
builder138146052\COPY: The system cannot find the file specified.

在@Mike 提出建议后,我遇到了这个问题:

D:\DineshVisualStudio\Autofac-Interceptor\AutofacModule\Autofac.Interface.ConcatFactory>docker build -t myappfact .
Step 6/15 : WORKDIR /Autofac-interceptor/project
Step 7/15 : RUN dotnet restore
---> Running in 9e91df3e68a3
MSBUILD : error MSB1003: Specify a project or solution file. The current 
working directory does not contain a project or solution file.
The command 'cmd /S /C dotnet restore' returned a non-zero code: 1

【问题讨论】:

  • 在 Mikes 建议后我修改了 docker 文件。现在我遇到了一个问题 { D:\DineshVisualStudio\Autofac-Interceptor\AutofacModule\Autofac.Interface.ConcatFactory>docker build -t myappfact。步骤 6/15:WORKDIR /Autofac-interceptor/project 步骤 7/15:运行 dotnet restore ---> 在 9e91df3e68a3 MSBUILD 中运行:错误 MSB1003:指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。命令 'cmd /S /C dotnet restore' 返回一个非零代码:1 }

标签: docker asp.net-core dockerfile docker-desktop docker-build


【解决方案1】:
Step 5/15 : COPY COPY

您的 Dockerfile 中是否连续两次出现 COPY 一词?

【讨论】:

    【解决方案2】:

    我认为您不需要 COPY /Autofac.Interface.ConcatFactory.csproj 中的前导 /。源文件是相对于当前工作目录的,并且您之前已经调用过WORKDIR

    https://docs.docker.com/engine/reference/builder/#copy

    【讨论】:

    • 我按照您的建议进行了修改。现在我被困在最后一点 D:\DineshVisualStudio\Autofac-Interceptor\AutofacModule\Autofac.Interface.ConcatFactory>docker build -t myappfact 。将构建上下文发送到 Docker 守护程序 18.98MB 步骤 6/15:WORKDIR /Autofac-interceptor/project ---> 使用缓存 ---> 60441dcd4f55 步骤 7/15:运行 dotnet restore ---> 在 9e91df3e68a3 MSBUILD 中运行:错误 MSB1003 :指定项目或解决方案文件。当前工作目录不包含项目或解决方案文件。命令“cmd /S /C dotnet restore”返回一个非零代码:1
    • 您的WORKDIR 可能已关闭。在第 6 步中,我会给它一个完全限定的路径:WORKDIR /DineshVisualStudio/Autofac-interceptor/AutofacModule/Autofac.interface.ConcactFactory/project。另请注意,第 8 步可能会出现与前导 / 字符相同的问题。
    • 在我的情况下,我有多个具有 csproj 文件的文件夹并且具有依赖关系。那么这个 Docker 文件会起作用吗?
    • 我对 .NET 开发和项目结构还不够熟悉,但一般情况下,您应该将 Docker Build 上下文设置为所有项目的最高级别公共目录。然后确保任何引用路径的命令都与您设置的任何 WORKDIR 指令相关。您还可以尝试删除所有 WORKDIR 指令并确保您引用的每个路径都与构建上下文相关。
    【解决方案3】:

    命令“COPY /Autofac.Interface.ConcatFactory.csproj project/”失败。我建议您阅读有关命令 COPY here 的更多信息。如果您从文件夹“D:\DineshVisualStudio\Autofac-Interceptor\AutofacModule\Autofac.Interface.ConcatFactory”运行 docker build,请使用命令“COPY..”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-28
      • 1970-01-01
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 2011-04-24
      相关资源
      最近更新 更多