使用不同的参数运行相同的服务

时间:2018-08-03 09:58:58

标签: docker docker-compose

我正在使用docker-compose来运行多个服务。这是我的docker-compose.yml的简短摘录:

version: '3'
services:
  backend:
    build: backend
  backoffice:
    build: backend
    command: mycommand --parameter 1

我想做的是多次运行backoffice服务,并为--parameter使用不同的值。我读到了scale命令,但它似乎无法按照我的意愿运行。

是否有一种方法无需声明多个服务backoffice1backoffice2,...?

version: '3'
services:
  backend:
    build: backend
  backoffice1:
    build: backend
    command: mycommand --parameter 1
  backoffice2:
    build: backend
    command: mycommand --parameter 2
  backoffice3:
    build: backend
    command: mycommand --parameter 3

1 个答案:

答案 0 :(得分:1)

您可以使用docker-compose run进行此操作。

我认为最简单的方法是使用docker-compose run。您可以执行以下操作:

$ docker-compose run -d backoffice mycommand --parameter 1
$ docker-compose run -d backoffice mycommand --parameter 2
$ docker-compose run -d backoffice mycommand --parameter 3

但是,一种更简单的方法是修改docker-compose.yml以使用这样的自定义入口点:

version: '3'
services:
  backend:
    build: backend
  backoffice:
    build: backend
    entrypoint: mycommand --parameter

然后,您只需为将由docker-compose run执行的mycommand的每次调用提供一个参数。

例如:

$ docker-compose run -d backoffice 1
$ docker-compose run -d backoffice 2
$ docker-compose run -d backoffice 3