我正在尝试从手动调用docker进行迁移,
docker run -v /tmp/bazel:/data -p 9090:8080 buchgr/bazel-remote-cache --max_size=1300
使用docker-compose.yml
文件,但似乎不知道如何将--max_size
从文件传递到容器:
version: "3"
services:
worker:
image: buchgr/bazel-remote-cache
deploy:
mode: replicated
replicas: 2
restart_policy:
condition: on-failure
delay: 10s
max_attempts: 3
window: 120s
ports:
- 9090:8080
- 6060:6060
#args:
#- max_size=1300
volumes:
- "/bazel_cache:/data"
visualizer:
image: dockersamples/visualizer:stable
ports:
- 8080:8080
stop_grace_period: 1m30s
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
deploy:
placement:
constraints: [node.role == manager]
我在这里想念什么?我尝试过args: ..
位,但docker对此抱怨:
$ docker stack deploy -c docker-compose.yml bazel_remote_cache
args Additional property args is not allowed
答案 0 :(得分:3)
您将docker run
中的图像名称后面传递的所有内容都解释为“命令”部分,并且将其传递到command:
中的docker-compose.yml
字段中:
version: "3"
services:
worker:
command: --max_size=1300
如果您需要替换该字段,则可以单独覆盖entrypoint:
(等效于docker run --entrypoint
)。
如果您控制服务,请考虑还可以通过环境变量设置这些值。通常,与提供命令行参数相比,在部署层进行设置更容易。如果您可以使默认的main命令简短,则在此处将command: run_service --max_size=1300
指定为完整命令也很清楚。