You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建.NET项目时跳过.Core依赖项目的问题求助

Docker构建跳过TooSee.Web.Core项目的问题排查与解决

问题原因

你的Dockerfile位于C:\Users\nemes\Documents\GitHub\tooseeapi\src\TooSee.Web.Host,执行docker build -t tooseeapi .时,构建上下文是当前的TooSee.Web.Host文件夹,COPY . .只会把Host项目的文件复制到容器的/app目录。而TooSee.Web.Core项目在同级的TooSee.Web.Core文件夹,完全没被复制到容器环境中,因此dotnet构建时找不到依赖的Core项目,只能跳过。

本地执行dotnet publish正常是因为本地环境中,Host目录下的../TooSee.Web.Core能直接访问到本地的Core项目文件,但容器内没有这个路径的文件。

解决方法

方案1:调整构建上下文(推荐)

  1. 切换到C:\Users\nemes\Documents\GitHub\tooseeapi\src目录执行构建命令,让上下文包含Host和Core两个项目:
docker build -t tooseeapi -f TooSee.Web.Host/Dockerfile .
  1. 修改Dockerfile中的路径配置:
FROM mcr.microsoft.com/dotnet/sdk:6.0 as builder

WORKDIR /app
# 上下文为src目录,COPY会同步两个项目文件
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/TooSee.Web.Host.csproj

# 构建运行容器
FROM mcr.microsoft.com/dotnet/sdk:6.0

# 安装依赖
RUN apt-get update \
    && apt-get install -y --allow-unauthenticated \
        libc6-dev \
        libgdiplus \
        libx11-dev \
     && rm -rf /var/lib/apt/lists/*

WORKDIR /app
# 修正发布产物路径(原Dockerfile误用了Debug目录)
COPY --from=builder /app/TooSee.Web.Host/bin/Release/net6.0/publish/ .

ARG ENVIRONMENT
ENV ENVIRONMENT=${ENVIRONMENT}

EXPOSE 80
CMD ["dotnet", "TooSee.Web.Host.dll"]

方案2:修改COPY命令(不推荐,上下文冗余)

如果不想切换构建目录,可以修改Dockerfile的COPY命令,从上级目录同步文件,但需确保构建上下文包含上级目录:

# 替换原有的COPY . .
COPY ../ .

这种方式会同步src目录下所有内容,但会引入冗余文件,不如方案1简洁可控。

关键修正点

原Dockerfile中COPY --from=builder的路径误用了Debug目录,但你执行的是-c Release发布,必须改成Release目录,否则会找不到发布产物。

内容的提问来源于stack exchange,提问作者Eugene Sukh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:06:32