c# - 从 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 时它实际上生活在其他地方。解释这一点的正确语法是什么?
解决方案
推荐阅读
- typescript - 在 typescript 中使用 Map 并添加字段
- java - spring.jpa.properties.hibernate.jdbc.time_zone=UTC 效果是什么?
- google-sheets - 如果 weeknum 是/否,Google 电子表格不起作用
- function - Solidity 中的函数可以调用合约中的另一个函数吗?
- python - 重命名数据框列时出现警告
- reactjs - 从 TimeStamp 显示分钟(React、TimeStamp、Firestore)
- python - 如何在python中的不同分隔符之间拆分字符串
- python - 如何在 python 中复制状态机类?
- c# - 已添加具有相同密钥的项目。键:[0,性别]
- node.js - 使用 npx 的 GitHub Action 失败并显示消息 /usr/bin/env: 'node': No such file or directory