首先,很抱歉,如果我误解了我得到的东西,那么我对Docker完全陌生。
因此,我正在开发一种软件,用于将csv文件处理到数据库中,并且一切都在GCP中运行。为了运行我的代码,我可以访问可以使用Docker镜像的Cloud Run。
今天,我添加了3个新文件:
在进行这些修改之前,我必须运行3个命令才能在云运行中发布我的代码:
dotnet build
gcloud builds submit --tag gcr.io/myproject/mytag
gcloud run deploy myservice gcr.io/myproject/mytag--platform managed
但是由于添加了这些文件,因此出现以下错误:/usr/share/dotnet/sdk/3.1.401/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.Sdk.DefaultItems.targets(295,5):错误NETSDK1022:包含重复的“编译”项。默认情况下,.NET SDK包含项目目录中的“编译”项。您可以从项目文件中删除这些项目,也可以将“EnableDefaultCompileItems”属性设置为“false”(如果要在项目文件中明确包含这些项目)。有关更多信息,请参见https://aka.ms/sdkimplicititems。重复项是:'BusinessLogic / Repository / AcademyRepository.cs'; 'BusinessLogic /存储库/接口(interface)/ISourceRepository.cs'; 'BusinessLogic / Repository / SourceRepository.cs'[/app/MyProject.csproj]
我在多个线程上看到检查.csproj文件中是否有奇怪的...条目,但在我的里面什么都没有。
这是我的dockerfile:
# Use Microsoft's official build .NET image.
# https://hub.docker.com/_/microsoft-dotnet-core-sdk/
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-alpine AS build
WORKDIR /app
# Install production dependencies.
# Copy csproj and restore as distinct layers.
COPY *.csproj ./
RUN dotnet restore
# Copy local code to the container image.
COPY . ./
WORKDIR /app
# Build a release artifact.
RUN dotnet publish -c Release -o out # This step fails
# Use Microsoft's official runtime .NET image.
# https://hub.docker.com/_/microsoft-dotnet-core-aspnet/
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-alpine AS runtime
RUN echo 'http://dl-cdn.alpinelinux.org/alpine/v3.8/main' >> /etc/apk/repositories && apk update --no-cache && apk add --no-cache bash libc6-compat=1.1.19-r11
WORKDIR /app
COPY --from=build /app/out ./
# Run the web service on container startup.
ENTRYPOINT ["dotnet", "MyDll.dll"]
我尝试运行在gcloud builds提交命令之外失败的命令,但未发生任何错误如果我删除文件并注释相关代码,问题将消失……但是我有点需要这些文件
编辑:
从Visual Studio中编辑csproj文件不会显示实际文件,而是显示修改后的版本。我用记事本编辑了csproj,进行了清理,然后重新编译了项目,但问题仍然存在。
最佳答案
找到了解决方法:
这是我的体系结构的一部分:
BusinessLogic
--- Repositories
--- Interface
问题出在“接口(interface)”文件夹中。通过删除它并在父文件夹(存储库)中添加我的界面,问题消失了。仍然不知道如何解决实际问题关于c# - 在Docker构建期间dotnet发布失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63580785/