我正在尝试对我的应用程序进行docker化。它由.NET Core后端和Angular前端组成,其设置如下:
根文件夹
Dockerfile
我可以使用docker-compose和Dockerfile成功创建容器。我不知道如何在Docker中实际运行应用程序。通常,当我想在计算机上本地运行应用程序时,请使用Powershell从api文件夹中执行“ dotnet run”命令,然后在另一个Powershell窗口中,从Web文件夹中运行“ ng serve”命令。如何在docker-compose或Dockerfile中的两个不同文件夹中运行两个shell命令?
我试图像这样在Dockerfile的末尾添加两个命令:
RUN cd api && dotnet run api.csproj
RUN cd web && ng serve
Docker运行第一行,但从不进入下一行。我猜想我必须从docker-compose发出命令,但我不知道该怎么办。
您正在使用'command1 && command2',这意味着如果command1以退出代码0退出,则运行command2,但是command1从不退出。
为了在一个容器中运行2个进程,您可以遵循this指南。
注:在大多数情况下,容器应该是一个独立的过程,因此,您应考虑将应用程序分为两个容器,一个用于前端,一个用于后端。