繁体   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