如何在docker-compose的不同文件夹中运行两个shell命令

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

我正在尝试对我的应用程序进行docker化。它由.NET Core后端和Angular前端组成,其设置如下:

  1. 根文件夹

    • docker-compose
    • Dockerfile

      1. Web子文件夹(包含Angular前端)
      2. api子文件夹(包含.NET Core后端)

    我可以使用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发出命令,但我不知道该怎么办。

docker docker-compose
1个回答
0
投票

您正在使用'command1 && command2',这意味着如果command1以退出代码0退出,则运行command2,但是command1从不退出。

为了在一个容器中运行2个进程,您可以遵循this指南。

注:在大多数情况下,容器应该是一个独立的过程,因此,您应考虑将应用程序分为两个容器,一个用于前端,一个用于后端。

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