【问题标题】:Docker compose build copy failedDocker 撰写构建副本失败
【发布时间】:2019-12-25 15:09:00
【问题描述】:

我真的很好奇如何解释和调试以下错误:-

C:\users\project>docker-compose build 

Step 6/15 : COPY *.csproj ./
ERROR: Service 'invoiceservice' failed to build: COPY failed: no source files were specified

这是一种特殊的微服务,因为我很少有这样的服务。

码头文件:-

FROM mcr.microsoft.com/dotnet/core/runtime:2.2 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY *.csproj ./
RUN dotnet restore -s https://api.nuget.org/v3/index.json -s https://www.myget.org/F/autoweb/api/v3/index.json

COPY . .
WORKDIR /src/src/InvoiceManagement/InvoiceService
RUN dotnet publish -c Release -o out

FROM build AS publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/out .
ENTRYPOINT ["dotnet", "InvoiceService.dll"]

有趣的部分是当我从 Visual Studio IDE 构建它时,它构建得很好,但它不是在 CLI 上构建的。

docker 撰写文件:-

invoiceservice:
    image: ${DOCKER_REGISTRY-}invoiceservice
    build:
      context: .
      dockerfile: src/InvoiceManagement/InvoiceService/Dockerfile

我不明白为什么 CLI 找不到源位置并复制 VS 工作正常的位置。有什么线索???

【问题讨论】:

    标签: docker asp.net-core asp.net-web-api docker-compose dockerfile


    【解决方案1】:

    这可能是您的 Docker 上下文的问题。 Dockerfiles 中的命令是相对于 docker/docker-compose CLI 工具运行的位置,而不是相对于 Dockerfile 的位置。

    换句话说,如果您从解决方案根目录运行命令,那么您的 csproj 文件实际上位于 ./src/InvoiceManagement/InvoiceService 下。结果,*.csproj 找不到任何文件,因为在您的解决方案根目录中没有任何项目文件。

    【讨论】:

      【解决方案2】:

      我尝试复制您的问题并且能够成功复制所有文件(而不是.csproj,我使用了.txt)。没有要复制的txt 文件时出现问题。我的 COPY 命令失败,消息与您的完全相同。

      现在,为什么 VS 能够成功构建镜像?那是因为VS首先构建项目!项目的构建过程完成后,会生成一个.csproj 文件并将其复制到映像中。

      要确认结果,ls 您的当前目录(从命令行构建失败时)并查看该目录中是否有任何.csproj 文件。

      【讨论】:

      • 对不起,我不明白你的意思!使用 .txt .txt 是什么意思,因为 VS 项目文件是 csproj 并且它具有所有配置,因此 .txt 来自哪里以及所有 dockerfile 设置我从未见过任何这样的 .txt 而不是 csproj 文件。你能更准确地阐述它吗..
      • @Urgen 我没有使用COPY *.csproj ./,而是使用了COPY *.txt ./,因为我现在没有 C# 项目。这就是我的意思。
      • @Urgen 让我知道它是否解决了问题,如果可以,请考虑接受答案。
      猜你喜欢
      • 2020-06-15
      • 1970-01-01
      • 2017-06-25
      • 2018-04-22
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多