【问题标题】:Deploying multiple container with same code (Docker)使用相同的代码部署多个容器(Docker)
【发布时间】:2021-05-13 15:52:23
【问题描述】:

我有一个运行良好的自定义构建映像(Python + 项目),我只想使用 docker-compose 部署多个容器,只有环境变量会改变,其余的是否相同,可以从 docker-compose 中的一项服务完成.yml

docker-compose.yml

version: '3'

services:
  logsService:
    image: logs:latest # logs image is already built and working fine
    env_file:
      - /home/controller/test/.env # File contains url, api_key, api_secret

通过使用 docker-compose up,我可以提供一个容器,但我想提供 4 个具有相同代码但不同 env 变量(即 url、api_key、api_secret)的容器,任何如何实现这一点的想法都会被告知

注意:我是 docker 新手,如果这是一个愚蠢的问题,请原谅我。

【问题讨论】:

    标签: docker docker-compose docker-swarm


    【解决方案1】:

    您可以使用 docker-compose 命令完成此操作

    docker-compose --scale --name="numberofcontainers" 
    

    所以如果我想启动我的“网络服务器”容器 3 次,那就是

    docker-compse --scale --webserver=3
    

    正如您所说,您是新手,我建议您也研究一下负载均衡器。否则你的其他容器将毫无用处

    【讨论】:

    • 感谢您的支持,能否更改 env_file 以便我拥有 3 个具有相同代码和不同 env 变量的容器。
    • 您需要在某处定义不同的 env_files,但简短的回答并不容易。最好为您的环境提供 3 个不同的 .yaml 文件。这也将使跟踪事情变得更容易
    • 好的,我会试试的。
    【解决方案2】:

    所以,可能是这样的:

    version: '3'
    
    services:
      logsService:
        image: logs:latest
        env_file:
          - /home/controller/test/${ENV:-}.env
    

    ENV=prod docker-compose --project-name prod up

    假设您的生产配置位于“prod.env”中

    【讨论】:

    • 感谢您的帮助,我也会试试这个
    猜你喜欢
    • 2020-02-12
    • 2020-04-09
    • 2021-12-05
    • 2020-02-23
    • 1970-01-01
    • 2018-04-13
    • 2019-11-19
    • 2019-06-15
    • 2014-08-27
    相关资源
    最近更新 更多