【发布时间】:2022-02-14 13:17:12
【问题描述】:
我的本地“src”文件夹中有 3 个 .NET6 项目,如下所示:
src/A
src/B
src/C
A:web api项目,有很多nuget依赖
B:类库,依赖于A
C:类库,依赖于A
(注意:当然,包括 .csproj 在内的项目相关文件都存在于本地项目文件夹中)
我的 Dockerfile 在项目文件夹 A 中。 我正在从“src”文件夹(即这是构建上下文)运行“docker build”命令,如下所示:
docker build -f A/Dockerfile -t myapiimage:v1 .
以下代码部分来自我的 Dockerfile,我尝试在其中恢复 nuget 依赖项:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ./A/*.csproj A/
RUN dotnet restore A/A.csproj
这很好用,我知道图像中的 .csproj 存储在 /src/A/A.csproj 中 我说的对吗?
我想知道 COPY 是否保留了正在构建的镜像中的源文件夹结构?
因为在下面 3 行之后:
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY *.csproj ./
这条线都不行:
RUN dotnet restore A/A.csproj
或,
RUN dotnet restore A.csproj
或,
RUN dotnet restore *A.csproj
或,
RUN dotnet restore src/A/A.csproj
那么,这个 .csproj 文件(所有 3 个项目的)存储在映像中的什么位置?
【问题讨论】:
标签: docker asp.net-web-api dockerfile