如何访问docker上下文之外的目录才能访问nuget/project

如何访问docker上下文之外的目录才能访问nuget/project,docker,.net-core,docker-compose,dockerfile,Docker,.net Core,Docker Compose,Dockerfile,我正在尝试从一个现有项目中创建一个docker来运行我们的集成测试。 解决方案文件具有指向docker compose(build:context)中配置的my context之外的文件夹的目录导航。这是我的docker compose.yml文件 services: integration: container_name: backend_integration build: context: . dockerfile: buildscripts/b

我正在尝试从一个现有项目中创建一个docker来运行我们的集成测试。 解决方案文件具有指向docker compose(build:context)中配置的my context之外的文件夹的目录导航。这是我的
docker compose.yml
文件

services:
  integration:
    container_name: backend_integration
    build:
      context: .
      dockerfile: buildscripts/backend-integration.Dockerfile
    ports:
      - 8080:80
我正在运行
docker compose-up集成

我的dockerfile:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
WORKDIR /app

COPY ./Directory.Build.targets .
COPY ./src/services/{projectName}/project.sln .
COPY ./src/services/{projectName}/{projectName}/projectName.csproj ./{projectName}/
COPY ./src/services/{projectName}/{projectName}Test/projectNameTest.csproj ./{projectName}Test/
COPY ./src/services/{projectName}/{projectName}/nuget.config . 

RUN dotnet restore --configfile nuget.config  // This is where DBCommom and DataEntities were called 
我的解决方案文件(sln)具有以下引用

Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "projectNameTest", "projectNameTest\projectNameTest.csproj", "{3038F569-2095-4B0D-9531-EF28424E47FB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DBCommon", "..\..\..\..\..\pkg\Common\DBCommon\DBCommon.csproj", "{4B4D0CB1-D023-4985-A871-204C43FB2F0A}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DataEntities", "..\..\..\..\..\pkg\Common\DataEntities\DataEntities.csproj", "{6BAF95C4-667F-4AC4-99EC-EB99DC1DF3B7}"
EndProject
PS:跟随错误

/usr/share/dotnet/sdk/2.2.207/NuGet.targets(246,5): error MSB3202: The project file "/pkg/Common/DBCommon/DBCommon.csproj" was not found. [/app/projectName.sln]
/usr/share/dotnet/sdk/2.2.207/NuGet.targets(246,5): error MSB3202: The project file "/pkg/Common/DataEntities/DataEntities.csproj" was not found. [/app/projectName.sln]
ERROR: Service 'integration' failed to build: The command '/bin/sh -c dotnet restore --configfile nuget.config' returned a non-zero code: 1

快速回答。你不能

再回答一点: 对于Docker,Docker可以访问的始终是
Dockerfile
及其以下。
Dockerfile
中的
COPY
命令与当前文件夹相关

您可能需要重新安排项目结构。将Dockerfile移到根目录下,可能在解决方案文件旁边,并调整相对于该文件夹的所有项目引用

您还应该关注
.dockrignore
文件,并提及所有不希望复制的文件/文件夹。这将帮助您减少在docker映像中复制的
上下文。(通常是
docker build
命令的第一行)。希望这有帮助