当前位置: 首页 > 知识库问答 >
问题:

.net core-docker compose生成错误

段干华晖
2023-03-14

我尝试使用Visual Studio从我的后端项目创建发布版本,但我收到错误消息

服务'backend_api'构建失败:命令'/bin/sh-c dotnet build...

对于“docker compose build”,我也会遇到同样的错误。

在Visual Studio的调试模式下,它可以工作。

Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["backendAPI/backendAPI.csproj", "backendAPI/"]
RUN dotnet restore "backendAPI/backendAPI.csproj"
COPY . .
WORKDIR "/src/backend_API"
RUN dotnet build "backendAPI.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "backendAPI.csproj" -c Release -o /app/publish

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

docker-compose.yml

version: '3.7'

services:
  backend_sql:
    image: mcr.microsoft.com/mssql/server:2017-GA-ubuntu
    container_name: testsql
    networks:
      - test_network
    ports:
      - "1440:1433"
    volumes:
     - testsqldata:/var/opt/mssql

  backend_api:
    image: ${DOCKER_REGISTRY-}backendapi
    container_name: testapi
    build:
      context: .
      dockerfile: backendAPI/Dockerfile
    networks:
      - test_network
    depends_on:
     - backend_sql
    ports:
     - "5000:80"

networks:
  test_network:
    external:
        name: test_network

volumes:
  testsqldata:
    driver: local
    name: testsqldata

错误消息:

...
2>Step 7/16 : RUN dotnet restore "backendAPI/backendAPI.csproj"
2> ---> Running in ee20ee70cedf
2>  Restore completed in 41.8 sec for /src/backendAPI/backendAPI.csproj.
2>Removing intermediate container ee20ee70cedf
2> ---> 6cafbb7f9daf
2>Step 8/16 : COPY . .
2> ---> 74dc0dfe8145
2>Step 9/16 : WORKDIR "/src/backend_API"
2> ---> Running in e198c3ffb356
2>Removing intermediate container e198c3ffb356
2> ---> 114bfbba3151
2>Step 10/16 : RUN dotnet build "backendAPI.csproj" -c Release -o /app/build
2> ---> Running in 3e7bf02253ce
2>Microsoft (R) Build Engine version 16.3.2+e481bbf88 for .NET Core
2>Copyright (C) Microsoft Corporation. All rights reserved.
2>MSBUILD : error MSB1009: Project file does not exist.
2>Switch: backendAPI.csproj
2>Service 'backend_api' failed to build: The command '/bin/sh -c dotnet build "backendAPI.csproj" -c Release -o /app/build' returned a non-zero code: 1
2>C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Sdks\Microsoft.Docker.Sdk\build\Microsoft.VisualStudio.Docker.Compose.targets(492,5): error DT1001: Service 'backend_api' failed to build: The command '/bin/sh -c dotnet build "backendAPI.csproj" -c Release -o /app/build' returned a non-zero code: 1
2>Done building project "docker-compose.dcproj" -- FAILED.

共有1个答案

马煌
2023-03-14

“错误MSB1009:项目文件不存在:”

此错误表示没有这样的*。项目文件位于当前位置。这是因为路径拼写错误:路径应该是backendAPI,而不是backend\u API。要解决该问题,请按以下方式更改代码:

FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["backendAPI/backendAPI.csproj", "backendAPI/"]
RUN dotnet restore "backendAPI/backendAPI.csproj"
COPY . .

      
 
       
  WORKDIR "/src/backend_API"
      
 
WORKDIR "/src/backendAPI"
RUN dotnet build "backendAPI.csproj" -c Release -o /app/build
 类似资料:
  • 我有以下代码片段 我尝试运行应用程序时出现以下错误(部分) 似乎type="num "没有被处理。我怀疑年龄int也可能是一个问题,因为它是一个int,但需要一个string。从sting到int的反向转换也可能是一个问题。 任何帮助是值得赞赏的。 谢谢

  • 我正在尝试使用Eclipse为一个涉及Gazebo(一个流行的机器人模拟器)的项目进行开发。Gazebo提供了一个插件系统,允许与模拟器进行外部交互,并提供了一系列关于如何编写插件的教程。 在成功地学习了这些教程之后,我尝试将代码迁移到Eclipse,使用cmake-g“Eclipse cdt4-unix makefiles”[buildpath]生成一个Eclipse rpoject,然后将其导

  • 主要内容:面向读者,前提条件.NET Core是Microsoft最新的通用开发平台。它可以在不同的平台上工作,并且已经被重新设计,使.NET变得快速,灵活和现代。 .NET核心恰好是微软的主要贡献之一。 开发人员现在可以使用.NET构建Android,iOS,Linux,Mac和Windows应用程序,全部使用开放源代码。 面向读者 本教程是为希望了解.NET Core基础知识的软件程序员设计的。 前提条件 要求读者应该对

  • 我创建了一个简单的. proto文件并执行了编译器(protoc-2.5.0rc1-win32.zip)。为规定的包生成了一个java文件。但是,生成的文件不会编译。. proto文件很简单,只有一条消息,其中包含一堆简单类型的可选字段(正确编号)。. java文件不编译,例如: 构造函数生成了消息。FieldAccessorTable(Descriptors.Descriptor,字符串[])未

  • 通过postman从API到数据库的post请求给了我以下响应:{“message”:“无效的对象名‘Accounts’。”} 这些是我的C#代码,我不知道我做错了什么或我错过了什么。请帮助。 > 帐户控制器。 使用AutoMapper;使用Microsoft。AspNetCore。Http;使用Microsoft。AspNetCore。Mvc;使用系统;使用系统。集合。通用;使用非洲生物医学测试

  • 我有一个JS应用程序。它在linux上运行良好,但在Windows10中我遇到了一个错误。 不正确的代码是 我在github中找到了这个错误的原因,我想问题是spawn nodejs spawn Doc在windows中无法正常工作。但我不知道如何修改这段代码使其工作。有人能帮我吗?

  • 我尝试在android studio中创建我的第一个项目,使用我尝试运行应用程序的一个示例,但是gradle给了我这个构建错误(没有更改一行代码--只是尝试运行空活动): Gradle:Failure:生成失败,出现异常。*错误:任务“:PassiveLocation:PackageDebug”执行失败。

  • 我正在进行maven构建,但是它得到了一个与依赖项相关的错误。如果我(和其他开发人员)在我们的本地机器或其他linux服务器上构建它,它就不会出现任何问题。但是,在一个特定的linux服务器上,它在构建时会出现以下错误。 maven生成错误: [错误]无法对项目CorporateInterface执行目标:无法解析项目COM的依赖项。TravelLinck:CorporateInterface:W