簡體   English   中英

Docker 在構建時跳過項目

[英]Docker skip project on build

我有這個配置的 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"]

並嘗試通過docker build -t tooseeapi .

但由於某些原因,它跳過了.Core項目

這是日志

=> 錯誤 [builder 9/9] 運行 dotnet publish -c Release TooSee.Web.Host.csproj 6.9s


[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。 版權所有。 #15 0.750 #15 2.054 確定要恢復的項目... #15 2.057 跳過項目“/TooSee.Web.Core/TooSee.Web.Core.csproj”,因為找不到它。 #15 2.060 跳過項目“/TooSee.Web.Core/TooSee.Web.Core.csproj”,因為它沒有找到。 #15 2.385 所有項目都是最新的以進行恢復。 #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]

Dockerfile 在此路徑下 - C:\Users\nemes\Documents\GitHub\tooseeapi\src\TooSee.Web.Host

.Core就在這里

C:\Users\nemes\Documents\GitHub\tooseeapi\src\TooSee.Web.Core

但是如果我運行dotnet publish -c Release TooSee.Web.Host.csproj我沒有錯誤

為什么它被跳過了,我該如何解決這個問題?

您必須將 docker 文件保存在此位置

C:\Users\nemes\Documents\GitHub\tooseeapi\src

並分別復制兩個項目文件。 就像是

COPY ["TooSee.Web.Host/TooSee.Web.Host.csproj", "./"]
COPY ["TooSee.Web.Core/TooSee.Web.Core.csproj", "./"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM