docker-compose等同于docker运行参数,例如撰写文件中的“ --foo bar”?

问题描述 投票:0回答:2

给出以下docker run命令:

  -p 80:80 -p 443:443 \
  rancher/rancher:latest \
  --acme-domain <YOUR.DNS.NAME>

在docker-compose文件中写入--acme-domain的表示法是什么?我无法在文档中找到它。谢谢

docker docker-compose
2个回答
1
投票

docker run命令行中图像名称之后的所有内容都是“命令”,它可以由外壳程序或ENTRYPOINT脚本执行。等效的docker-compose指令为command。例如:

service:
  image: rancher/rancher:latest
  ports:
    - "80:80"
    - "443:443"
  command: "--acme-domain <YOUR.DNS.NAME>"
  ...

0
投票

您可以尝试

docker-compose run service_name --acme-domain <example.com>

对服务运行一次命令。例如,以下命令启动Web服务并运行bash作为其命令。

docker-compose run web bash

您在带有配置的新容器中用于运行启动的命令由服务的定义,包括卷,链接和其他细节。但是,有两个重要区别。

首先,运行传递的命令将覆盖服务配置。例如,如果Web服务配置以bash开始,然后是docker-compose run web python app.pypython app.py覆盖它。

docker-compose-run

更新:

如@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的情况下尝试上述操作,因为入口点将处理"${@}"

© www.soinside.com 2019 - 2024. All rights reserved.