我正在使用docker-compose来运行多个服务。这是我的docker-compose.yml
的简短摘录:
version: '3'
services:
backend:
build: backend
backoffice:
build: backend
command: mycommand --parameter 1
我想做的是多次运行backoffice
服务,并为--parameter
使用不同的值。我读到了scale
命令,但它似乎无法按照我的意愿运行。
是否有一种方法无需声明多个服务backoffice1
,backoffice2
,...?
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
答案 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