使用Azure管道构建docker映像时未找到.csproj文件 我的目标

使用Azure管道构建docker映像时未找到.csproj文件 我的目标,docker,asp.net-core,azure-devops,dockerfile,azure-pipelines,Docker,Asp.net Core,Azure Devops,Dockerfile,Azure Pipelines,我想从Azure DevOps管道向Dockerhub发布docker映像。 管道在Gitlab中主分支上的提交之后运行。 我要为其构建映像的应用程序是一个.Net核心Web API项目。 我正在使用dotnet自动创建的Dockerfile 错误 这是我得到的错误: 问询处 我的应用程序的文件夹结构如下所示: - APIGateway [Folder] - APIGateway [Folder] - Controller/Models/Services etc... [Fo

我想从Azure DevOps管道向Dockerhub发布docker映像。 管道在Gitlab中主分支上的提交之后运行。 我要为其构建映像的应用程序是一个.Net核心Web API项目。 我正在使用dotnet自动创建的Dockerfile

错误 这是我得到的错误:

问询处 我的应用程序的文件夹结构如下所示:

 - APIGateway [Folder]
   - APIGateway [Folder]
     - Controller/Models/Services etc... [Folders]
     - APIGateway.csproj
     - APIGateway.csproj.user
     - **Dockerfile**
     - Program.cs
     - Startup.cs
     - Appsettings,json
     - Appsettings.Development.json
   - APIGateway.UnitTests [Folder]
   - .dockerignore
   - APIGateway.sln
 - Readme.md
我的Dockerfile如下所示:

 - APIGateway [Folder]
   - APIGateway [Folder]
     - Controller/Models/Services etc... [Folders]
     - APIGateway.csproj
     - APIGateway.csproj.user
     - **Dockerfile**
     - Program.cs
     - Startup.cs
     - Appsettings,json
     - Appsettings.Development.json
   - APIGateway.UnitTests [Folder]
   - .dockerignore
   - APIGateway.sln
 - Readme.md

对于Azure管道,我将.Net核心模板任务(还原、构建、测试、发布、发布工件)添加到代理作业中。管道将成功执行这些任务。 我还添加了Docker BuildAndPush任务,并将Dockerhub配置为容器注册表

BuildAndPush任务的命令:

我已经看过类似的帖子:。人们主要建议在构建上下文中添加“Build.Repository.LocalPath”。但我还是犯了同样的错误


有人知道如何解决这个问题吗?

容器是否在本地生成?根据您描述的文件夹层次结构,我看不出它会是什么样子。不,我在本地也会遇到相同的错误。好的,您的
dockerfile
有问题。它与Azure DevOps无关。您需要在本地解决该问题。查看目录层次结构与
dockerfile
所述内容以及错误消息;它告诉你它找不到文件。默认情况下,docker上下文是包含dockerfile和所有子目录的文件夹。您已经在
APIGateway
文件夹中,因此您的
COPY
命令指向了一个不存在的文件。因此,现在我让它在本地工作。我将Dockerfile向上移动了一个目录,并保持Dockerfile不变。但是Azure管道仍然给出了与我的问题中描述的相同的错误…它现在可以工作了!谢谢您的帮助@DanielMann