为ReactJS和Asp.net core创建Docker映像

为ReactJS和Asp.net core创建Docker映像,reactjs,docker,asp.net-core,Reactjs,Docker,Asp.net Core,我在Docker迈出了一小步。如果有人向我介绍在docker上部署代码的步骤,那对我来说是件好事。我的前端应用程序在ReactJS中,后端应用程序在.NETCore中。我想为它创建映像文件。Docker和Microsoft都有一些关于在Docker中构建和托管ASP.NET Core的指南,这是您需要执行的第一步: 如果要在映像中包含ReactJS客户端并使用ASP.NET Core托管它: 构建您的JS客户端 在构建服务器之前或作为docker构建过程的一部分,通过将客户端文件复制到ASP

我在Docker迈出了一小步。如果有人向我介绍在docker上部署代码的步骤,那对我来说是件好事。我的前端应用程序在ReactJS中,后端应用程序在.NETCore中。我想为它创建映像文件。

Docker和Microsoft都有一些关于在Docker中构建和托管ASP.NET Core的指南,这是您需要执行的第一步:

如果要在映像中包含ReactJS客户端并使用ASP.NET Core托管它:

  • 构建您的JS客户端
  • 在构建服务器之前或作为docker构建过程的一部分,通过将客户端文件复制到ASP.NET核心应用程序的wwwroot,将其包含在docker映像中
  • 以下是我的一个项目的外观,您可以根据需要修改它:

    FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base
    WORKDIR /app
    EXPOSE 80
    
    FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS restore
    
    WORKDIR /src
    RUN dotnet restore "YourProject.Web/YourProject.Web.csproj"
    
    FROM restore as build
    COPY . .
    WORKDIR "/src/YourProject.Web"
    RUN dotnet build "YourProject.Web.csproj" -c Debug --no-restore -o /app
    
    FROM build AS publish
    RUN dotnet publish "YourProject.Web.csproj" -c Debug --no-restore -o /app
    
    FROM base AS final
    WORKDIR /app
    COPY --from=publish /app .
    COPY ./ReactClientFiles ./wwwroot
    ENTRYPOINT ["dotnet", "YourProject.Web.dll"]
    
    确保ASP.NET Core已设置为承载静态文件