给出以下docker run
命令:
-p 80:80 -p 443:443 \
rancher/rancher:latest \
--acme-domain <YOUR.DNS.NAME>
在docker-compose文件中写入--acme-domain
的表示法是什么?我无法在文档中找到它。谢谢
docker run
命令行中图像名称之后的所有内容都是“命令”,它可以由外壳程序或ENTRYPOINT
脚本执行。等效的docker-compose
指令为command
。例如:
service:
image: rancher/rancher:latest
ports:
- "80:80"
- "443:443"
command: "--acme-domain <YOUR.DNS.NAME>"
...
您可以尝试
docker-compose run service_name --acme-domain <example.com>
对服务运行一次命令。例如,以下命令启动Web服务并运行bash作为其命令。
docker-compose run web bash
您在带有配置的新容器中用于运行启动的命令由服务的定义,包括卷,链接和其他细节。但是,有两个重要区别。
首先,运行传递的命令将覆盖服务配置。例如,如果Web服务配置以
bash
开始,然后是docker-compose run web python app.py
用python app.py
覆盖它。
更新:
如@larsks所述,如果在command
中查找内容,则将任何内容传递给docker-compose中的dockerfile the entrypoint都将作为参数处理>
exec tini -- rancher --http-listen-port=80 --https-listen-port=443 --audit-log-path=${AUDIT_LOG_PATH} --audit-level=${AUDIT_LEVEL} --audit-log-maxage=${AUDIT_LOG_MAXAGE} --audit-log-maxbackup=${AUDIT_LOG_MAXBACKUP} --audit-log-maxsize=${AUDIT_LOG_MAXSIZE} "${@}"
因此,您可以按照@larsks的回答,也可以在不更改docker-compose的情况下尝试上述操作,因为入口点将处理
"${@}"