Docker由许多(数百)个环境组成

Docker由许多(数百)个环境组成,docker,docker-compose,Docker,Docker Compose,我使用docker运行一个脚本,该脚本需要在大约100个不同的环境中运行 这样做的最佳实践是什么 在类似的情况下,但环境较少,我在过去尝试过几种不同的方法,但我不确定哪种方法是最好的 我写了一个脚本,它循环遍历值并设置不同的环境。它在一个容器中运行,但是是连续的 我编写了一个脚本,它循环遍历值,设置环境,并运行几个进程,每个进程都有相应的环境。这也在一个容器中运行,并且是并行的,但是违背了每个容器一个进程的原则。此外,我注意到,当几个进程在同一个容器中运行时,它们会争夺网络,CPU会等待很长时间

我使用docker运行一个脚本,该脚本需要在大约100个不同的环境中运行

这样做的最佳实践是什么

在类似的情况下,但环境较少,我在过去尝试过几种不同的方法,但我不确定哪种方法是最好的

  • 我写了一个脚本,它循环遍历值并设置不同的环境。它在一个容器中运行,但是是连续的

  • 我编写了一个脚本,它循环遍历值,设置环境,并运行几个进程,每个进程都有相应的环境。这也在一个容器中运行,并且是并行的,但是违背了每个容器一个进程的原则。此外,我注意到,当几个进程在同一个容器中运行时,它们会争夺网络,CPU会等待很长时间

  • 我编写了一个丑陋的compose文件,其中唯一改变的是
    环境:
    子句。这会创建多个容器,但由于大量的复制/粘贴,似乎容易出错


  • 是否有类似于撰写文件中的循环这样的东西可以使我不必在yml文件中复制/粘贴

    我最后做的是:

  • 我创建了一个脚本,用不同的命令和环境生成docker compose.${TYPE}.yml
  • 我在docker compose.yml文件中取出了“要点”
  • 我使用
    docker compose-f docker-compose.yml-f docker compose.${TYPE}.yml up-d
    启动不同类型的服务
  • 这样我:

  • 自动创建不同的yml
  • 我正在为每个容器运行一个进程
  • 我并行运行容器

  • 拥有太多环境的目的是什么?您使用该脚本的目的是什么?也许您应该尝试使用关键字
    extends
    ,但它支持2.1版。在compose的3.x版中不建议使用此选项。