将在docker中运行的Angular / NodeJS存储库的结构



我们有存储库,里面有一个用Angular编写的应用程序。它需要一个带有nginx的docker容器来托管。nodejs 需要一个 nodejs 的 docker 容器,所以我们的应用程序将被分成 2 个容器,这些容器将被链接。

因此,要编写 2 个 docker文件(每个映像一个),我们必须在存储库中拆分我们的文件夹,如下所示:

    • Angular :包含 nginx 的 dockerfile

    • NodeJS : 包含 dockerfile for nodejs

但问题是他们都需要package.json。(Angular 表示 devdependencies,NodeJS 表示依赖项)。

存储库中最适合您的应用程序的结构是什么?

如果你愿意,Nginx 和 Nodejs 容器可以在 Docker Compose 中共享一个卷。您可以使用 volumes_from 参数。它将从另一个服务或容器挂载所有卷,可以选择指定只读访问 (ro) 或读写 (rw)。https://docs.docker.com/compose/compose-file/

    volumes_from:
      - service_name
      - container_name
      - service_name:rw

在您的情况下,package.json 可以位于 Nodejs 容器中,但也可以由 Nginx 容器使用此参数访问。

最新更新