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

Docker Compose Up执行失败提示项目未找到,但Visual Studio可正常运行

解决Docker Compose手动执行docker compose up时项目依赖找不到的问题

问题根源

Visual Studio启动Docker Compose时,会自动以解决方案根目录作为构建上下文执行命令,而手动运行docker compose up时,若你所在的目录不是项目根,或者Docker Compose配置里的上下文路径不对,就会导致Dockerfile无法找到依赖的子项目(比如ExternalDataProvider)。

具体解决步骤

  • 切换到正确的目录执行命令
    找到你的docker-compose.yml所在的解决方案根目录(比如名为DockerTestSolution的文件夹),在终端里切换到该目录后,再执行:

    docker compose up
    

    不要在DockerTestApi这类子项目目录下执行命令。

  • 检查Dockerfile的COPY指令
    确保Dockerfile里复制了所有依赖项目的csproj文件,而不只是主项目:

    # 复制主项目文件
    COPY ["DockerTestApi/DockerTestApi.csproj", "DockerTestApi/"]
    # 复制依赖的外部项目文件
    COPY ["ExternalDataProvider/ExternalDataProvider.csproj", "ExternalDataProvider/"]
    
    # 然后执行restore
    RUN dotnet restore "DockerTestApi/DockerTestApi.csproj"
    

    如果只复制了主项目的文件,restore时就会找不到依赖项目的路径。

  • 确认Docker Compose里的构建上下文配置
    打开docker-compose.yml,检查服务的build节点,确保context指向解决方案根目录(即docker-compose.yml所在的目录):

    services:
      dockertestapi:
        build:
          context: .  # 这里的.代表当前目录,也就是解决方案根
          dockerfile: DockerTestApi/Dockerfile
    

    如果context被设置成了DockerTestApi/这类子目录,Docker构建时只能访问该子目录下的文件,自然找不到上级的ExternalDataProvider。

  • 手动验证构建上下文
    在解决方案根目录执行以下命令,单独测试Docker构建是否正常:

    docker build -f DockerTestApi/Dockerfile .
    

    如果这个命令成功,说明docker compose up的问题就是执行目录不对;如果仍然报错,再检查Dockerfile里的路径是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:57:14