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

Docker-Compose构建.NET服务时无法找到.csproj文件求助

问题原因分析
  1. 构建上下文错误:当前docker-compose.yml中build.context设为.(即docker-compose目录),而你的.csproj文件在上级目录的contentserviceprj/userserviceprj中,构建时无法访问到这些文件。
  2. Dockerfile路径错误:docker-compose里指定的dockerfile路径是contentservice/Dockerfile,但实际目录名是contentserviceprj,路径不匹配。
  3. 环境变量拼写错误:contentservice服务中的${DOCKER_REGISTSTRY-}多写了一个s,应为${DOCKER_REGISTRY-}。
解决方案

直接修改docker-compose.yml,将每个服务的构建上下文指向对应服务的目录,同时修正路径和拼写错误:

修改后的docker-compose.yml:

version: '3.4'

services:
    userservice:
      image: ${DOCKER_REGISTRY-}userservice
      build:
        context: ../userserviceprj  # 指向userserviceprj目录
        dockerfile: Dockerfile
      ports:
        - "9000:80"
      environment:
        - GOOGLE_APPLICATION_CREDENTIALS=./firebase-config.json
    contentservice:
      image: ${DOCKER_REGISTRY-}contentservice  # 修正拼写错误
      build:
        context: ../contentserviceprj  # 指向contentserviceprj目录
        dockerfile: Dockerfile
      ports:
       - "9001:80"
验证方法

在docker-compose目录下重新执行命令:

docker-compose -f docker-compose.yml up --build

这样每个服务的构建上下文就和你单独进入服务目录执行docker build时一致,Dockerfile中的COPY *.csproj .就能正确找到项目文件,解决MSB1009错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 09:54:54