[英]Docker skip project on build
I have dockerfile with this config我有这个配置的 dockerfile
FROM mcr.microsoft.com/dotnet/sdk:6.0 as builder
WORKDIR /app
COPY . .
RUN apt-get update;apt-get install curl; apt-get -y install zip
RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
RUN unzip awscliv2.zip
RUN ./aws/install
ENV PATH="${PATH}:/root/.dotnet/tools"
#RUN dotnet tool install -g AWS.CodeArtifact.NuGet.CredentialProvider
#
#RUN dotnet codeartifact-creds install
#
#RUN aws codeartifact login --tool dotnet --domain monspire --domain-owner 986853728599 --repository monspire
RUN dotnet restore
RUN dotnet publish -c Release TooSee.Web.Host.csproj
# create the runnable container...
FROM mcr.microsoft.com/dotnet/sdk:6.0
# install dependencies
RUN apt-get update \
&& apt-get install -y --allow-unauthenticated \
libc6-dev \
libgdiplus \
libx11-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=builder /app/src/TooSee.Web.Host/bin/Debug/net6.0/publish/ .
ARG ENVIRONMENT
ENV ENVIRONMENT=${ENVIRONMENT}
EXPOSE 80
CMD ["dotnet", "TooSee.Web.Host.dll"]
And try to run it via docker build -t tooseeapi .
并尝试通过docker build -t tooseeapi .
But for reasons it skipped .Core
project但由于某些原因,它跳过了.Core
项目
Here is log这是日志
=> ERROR [builder 9/9] RUN dotnet publish -c Release TooSee.Web.Host.csproj 6.9s => 错误 [builder 9/9] 运行 dotnet publish -c Release TooSee.Web.Host.csproj 6.9s
[builder 9/9] RUN dotnet publish -c Release TooSee.Web.Host.csproj: #15 0.750 Microsoft (R) Build Engine version 17.2.0+41abc5629 for .NET #15 0.750 Copyright (C) Microsoft Corporation. [builder 9/9] 运行 dotnet publish -c Release TooSee.Web.Host.csproj:#15 0.750 Microsoft (R) Build Engine version 17.2.0+41abc5629 for .NET #15 0.750 版权所有 (C) Microsoft Corporation。 All rights reserved.版权所有。 #15 0.750 #15 2.054 Determining projects to restore... #15 2.057 Skipping project "/TooSee.Web.Core/TooSee.Web.Core.csproj" because it was not found. #15 0.750 #15 2.054 确定要恢复的项目... #15 2.057 跳过项目“/TooSee.Web.Core/TooSee.Web.Core.csproj”,因为找不到它。 #15 2.060 Skipping project "/TooSee.Web.Core/TooSee.Web.Core.csproj" because it was not found. #15 2.060 跳过项目“/TooSee.Web.Core/TooSee.Web.Core.csproj”,因为它没有找到。 #15 2.385 All projects are up-to-date for restore. #15 2.385 所有项目都是最新的以进行恢复。 #15 3.150 /usr/share/dotnet/sdk/6.0.302/Microsoft.Common.CurrentVersion.targets(2066,5): warning : The referenced project '../TooSee.Web.Core/TooSee.Web.Core.csproj' does not exist. #15 3.150 /usr/share/dotnet/sdk/6.0.302/Microsoft.Common.CurrentVersion.targets(2066,5):警告:引用的项目'../TooSee.Web.Core/TooSee.Web.Core。 csproj' 不存在。 [/app/TooSee.Web.Host.csproj] [/app/TooSee.Web.Host.csproj]
Dockerfile is under this path - C:\Users\nemes\Documents\GitHub\tooseeapi\src\TooSee.Web.Host
Dockerfile 在此路径下 - C:\Users\nemes\Documents\GitHub\tooseeapi\src\TooSee.Web.Host
And .Core
is here .Core
就在这里
C:\Users\nemes\Documents\GitHub\tooseeapi\src\TooSee.Web.Core
But if I run dotnet publish -c Release TooSee.Web.Host.csproj
I got no errors但是如果我运行dotnet publish -c Release TooSee.Web.Host.csproj
我没有错误
Why it's skipped and how I can fix this?为什么它被跳过了,我该如何解决这个问题?
you have to keep your docker file at this location您必须将 docker 文件保存在此位置
C:\Users\nemes\Documents\GitHub\tooseeapi\src
and copy both project files separately.并分别复制两个项目文件。 something like就像是
COPY ["TooSee.Web.Host/TooSee.Web.Host.csproj", "./"]
COPY ["TooSee.Web.Core/TooSee.Web.Core.csproj", "./"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.