docker - 从 docker-compose.yml 将参数传递到 docker 容器
问题描述
我正在尝试从手动调用 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 stack deploy -c docker-compose.yml bazel_remote_cache
args Additional property args is not allowed
解决方案
您在图像名称之后传递的任何内容都docker run
被解释为“命令”部分,并且您将在以下command:
字段中传递它docker-compose.yml
:
version: "3"
services:
worker:
command: --max_size=1300
如果您需要替换该字段,您可以单独覆盖entrypoint:
(相当于)。docker run --entrypoint
如果您控制服务,还可以考虑通过环境变量设置这些值;这通常比提供命令行参数更容易在部署层设置。如果您可以使默认的主命令简短,command: run_service --max_size=1300
那么在此处指定为完整命令也更清楚。
推荐阅读
- vue.js - Vue路由器-替换路由视图时在另一个顶部呈现
- android - 在 Android 中绘制 3D 数学函数
- java - 在 Struts 2.5.14 中,我无法添加新动作,我可以添加的唯一动作是每个 struts.xml 包中的 hello
- android-layout - ExoPlayer2 可缩放视图?
- python - 带有 Python 输入的 TypeError 不支持的操作数
- python - TypeError:只有整数标量数组可以转换为标量索引——Python 3.6.5
- php - PHP函数在do while
- python - 使用pyparsing查找关键字的前缀和后缀
- c - 最大行长程序在c中打印不可读的字符
- android - 无法从嵌套的 Hashmap 访问值