抱歉大家提出了愚蠢的问题,我是 Docker 新手。 我尝试了这个标题的建议,但没有帮助。 如何通过dockerfile将文件夹内容复制到/app?
我有从另一个项目添加到 csproj 文件的文件。
<Content Include="..\Common.Utils\globalkafkasettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
我想将此文件复制到应用程序文件夹以作为 docker 容器中的基础映像 这是我的 dockerfile。
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
# Depending on the operating system of the host machines(s) that will build or run the containers, the image specified in the FROM statement may need to be changed.
# For more information, please see https://aka.ms/containercompat
# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809 AS base
WORKDIR /app
#COPY ["bin/Debug/net8.0/globalkafkasettings.json", ""]
COPY . /context
EXPOSE 8080
EXPOSE 8081
COPY ["Common.Utils/globalkafkasettings.json", "/app/"]
# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0-nanoserver-1809 AS build
ARG BUILD_CONFIGURATION
WORKDIR /src
COPY ["API/API.csproj", "API/"]
COPY ["Common.Utils/Common.Utils.csproj", "Common.Utils/"]
COPY ["Common.Utils/globalkafkasettings.json", "API/"]
RUN dotnet restore "./API/API.csproj"
COPY . .
WORKDIR "/src/API"
RUN dotnet build "./API.csproj" -c %BUILD_CONFIGURATION% -o /app/build
# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./API.csproj" -c %BUILD_CONFIGURATION% -o /app/publish /p:UseAppHost=false
# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "API.dll"]
命令 COPY ["Common.Utils/globalkafkasettings.json", "/app/"] 不起作用 我在容器中没有看到这个文件。
但是如果我选择另一个像这样的文件夹 COPY ["Common.Utils/globalkafkasettings.json", "/test/"] 正在工作。 我不明白为什么。
我决定将 kaska 设置添加到每个项目的 appsettings.json 中,它正在工作,抱歉浪费了时间