首页 > 解决方案 > 从 dockerfile 引用父文件

问题描述

所以我有一个这样的解决方案结构:

sln 
--.sln
--docker-compose
--nuget.config
|
---- Project1 
------ src 
-------- Project1 
---------- csproj
---------- Dockerfile

我试图在我的 dockerfile 中做这样的事情,但它nuget.config说不存在:failed to compute cache key: "../../../nuget.config" not found: not found

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

ENV NUGET_USER=user
ARG NUGET_TOKEN
ENV NUGET_TOKEN=$NUGET_TOKEN

# Copy csproj and restore as distinct layers
COPY ["Project1.csproj", "./"]
COPY ../../../nuget.config ./
RUN dotnet restore "./Project1.csproj"

# Copy everything else and build
COPY . ./
RUN dotnet build "Project1.csproj" -c Release -o /app/build

FROM build-env AS publish
RUN dotnet publish "Project1.csproj" -c Release -o /app/out

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:5.0
#WORKDIR /app
COPY --from=publish /app/out .

ENV ASPNETCORE_URLS=http://+:8080
EXPOSE 8080

ENTRYPOINT ["dotnet", "Project1.dll"]

如果我更改COPY ../../nuget.config ./COPY ./nuget.config ./并将我的副本添加nuget.cofig到 project1 目录,它运行正常,但我不想在每个项目中复制该文件。

我的智能感知识别出我正在尝试的路径是有效的,但我假设当我执行 docker compose 时它实际上生活在其他地方。解释这一点的正确语法是什么?

标签: c#docker.net-core

解决方案


推荐阅读