Windows Dockerfile 不会复制到基础映像的应用程序文件夹

问题描述 投票:0回答:1

抱歉大家提出了愚蠢的问题,我是 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/"] 正在工作。 我不明白为什么。

c# asp.net dockerfile
1个回答
0
投票

我决定将 kaska 设置添加到每个项目的 appsettings.json 中,它正在工作,抱歉浪费了时间

© www.soinside.com 2019 - 2024. All rights reserved.