gpt4 book ai didi

docker - 创建容器的最佳方法

转载 作者:行者123 更新时间:2023-12-02 19:00:03 28 4
gpt4 key购买 nike

我正在使用具有以下依赖项的 nodejs、mysql 开发一个应用程序

  • Nginx(用于反向代理 db 和 nodejs 服务器)
  • ghostscripts (依赖操作系统是ubuntu)
  • pdftk (依赖操作系统是ubuntu)

  • 如果我想使用 docker 容器来打包我的应用程序,我想知道什么是最好的方法。

    我应该创建一个 Nginx 容器、一个 nodejs 容器和一个 MySQL 并让它们相互通信吗?我知道这是一种更好的方法,因为它具有可扩展性,但在这种情况下,我应该如何以及在哪里安装 ghostscript 和 pdftk? (nodejs 应用程序使用 Ghostscript 和 pdftk 处理 pdf 文件)

    或者

    我应该创建一个 ubuntu docker 容器并在其中安装所有东西(即 Nginx、pdftk、Ghostscript、mysql)吗?

    最佳答案

    将应用程序拆分为单独的容器需要一个定义良好的 API,该 API 支持通过网络调用(通常是 HTTP 或 TCP 堆栈上的一些其他应用程序协议(protocol))。

    由于 ghostscripts 和 pdftk 都是使用 CLI 调用的命令行工具,因此您无法从另一个开箱即用的容器中调用它们,因此您需要为此开发一些面向外部的 API。

    在设置容器的边界时,请考虑域。容器成为您将部署和扩展的最小单元。该单元应该是独立的,并且具有明确定义的单一目的。

    从您的描述中不清楚 nginx 究竟扮演什么角色,但假设它是某种面向客户端的网络服务器或代理,那么 3 个容器在您的情况下是有意义的

  • NodeJs + PDFTK + Ghostscripts(应用程序)
  • Nginx(网络服务器/代理)
  • MySQL(数据库)

  • NodeJS 应用程序内部包含所有应用程序依赖项,但与 Nginx 和 MySQL 的耦合更松散,它可以通过网络与之通信。

    关于docker - 创建容器的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61391353/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com