我正在尝试使用docker-compose up
您可以使用docker run [APP_CONTAINER_NAME] [APP_OPTIONS]
的方式。如何将命令行选项发送到我以“docker-compose up”开头的dockerized程序?
回答
docker run被定义为:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
虽然docker compose run
被定义为:
docker-compose run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
在这两种情况下,最终ARGS
(这可能是的 “APP_OPTIONS
” 任择议定书的问题)会被传递给容器命令。
请注意,docker run
选项中的一些可以按原样用于docker-compose run
(其中一个为-d
,用于运行分离的容器命令),但不是全部。
没有办法将ARGS放入docker-compose文件中吗?在我的情况下,在命令行上传递它们太不稳定。 – dsteinkopf
@dsteinkopf当然:使用'command'(https://docs.docker.com/compose/compose-file/#command),你可以覆盖图像默认命令,允许你重复图像中定义的命令,但改变其参数。 – VonC
Docker Compose的要点是您不必记住所有的命令行开关。
如果你想改变不同上下文的环境变量,我建议你为Compose创建一个基地common.yml
文件。然后,您可以为每个不同的上下文创建一个新的yml文件,并使用extends
指令继承common.yml
文件。然后,您可以使用-f
标志到docker compose
在上下文之间切换。
另请注意,如果您只是在yml中更改一个变量,并且您可以使用外部文件作为环境变量(如果这对您更好),则Compose不应“重建”任何内容。
您需要查看Dockerfile并查看正在处理APP_OPTIONS的内容。很有可能入口点正在选择标志。在这种情况下,指定的命令,使用
command: [-flag1, -flag2]
这工作,因为当两者都指定https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/
- 1. 如何将命令行选项传递给我的dockerized GoLang程序?
- 2. 如何将命令发送到正在运行的Java程序?
- 3. 如何通过命令行将参数发送到WebSetup项目
- 4. 如何使用命令行选项将文件发送到打印机?
- 5. 发送命令到其他命令行程序
- 6. 如何通过udev将命令行参数发送到进程?
- 7. 如何将命令发送到通过批处理命令行运行的EXE?
- 8. 将选项命令发送到SIP UDP服务器
- 9. python程序中的命令行选项
- 10. 如何通过命令行将命令发送到正在运行的应用程序
- 11. 将参数发送到命令行
- 12. 如何将批处理文件中的命令发送到命令行.exe?
- 13. 将ls命令的输出送到头
- 14. 发送命令到进程
- 15. 我如何打开一个命令行程序并用java发送命令给他们(安卓)
- 16. eclipse命令行开关以项目开头
- 17. 将命令行选项添加到CMake
- 18. 如何从C程序向Linux命令发送命令
- 19. 如何将数据命令发送到IT_100串行端口?
- 20. 如何通过.sh文件的串行命令将命令发送到Arduino?
- 21. 是否可以将命令发送到现有的xterm进程?
- 22. 从命令行发送值?
- 23. 当命令行Java程序在工作时发送命令
- 24. 在dockerized python3 ftp命令RETR引发ConnectionResetError
- 25. 如何发送备份或恢复命令到命令窗口
- 26. 如何发送命令到是Perl
- 27. 发送输入到PHP的命令行程序
- 28. 发送关键代码到OS X上的命令行程序
- 29. 将命令发送到正在运行的java进程
- 30. 如何在GNU Info中获得程序的命令行选项?
我真的不明白在Dockerfile命令将按照默认的参数传递给入口点发送到入口点问题 - 在docker-compose中,将参数放入docker-compose.yml文件中。这种方法对你有没有问题? –
@AdrianMouat是的,它不是理想的,因为每次你想发送一个新的选项,你必须修改docker-compose.yml,重建并重新运行。我希望能够在运行服务时将选项发送到我的程序,因为我可以在运行带有docker run的主容器时执行该服务,并在我的Dockerfile中使用ENTRYPOINT来实现此行为。 – Donovan