我正在尝试使用docker-compose up
docker run [APP_CONTAINER_NAME] [APP_OPTIONS]
的方式。
答案 0 :(得分:3)
Docker Compose的重点在于您不必记住所有命令行开关。
如果您想更改不同上下文的环境变量,我建议您为Compose创建一个基本common.yml
文件。然后,您可以为每个不同的上下文创建一个新的yml文件,并使用common.yml
指令从extends
文件继承。然后,您可以使用-f
标记docker compose
来切换上下文。
另请注意,如果您只是更改yml中的变量,Compose不应该“重建”任何内容,并且如果更适合您,则可以将外部文件用于环境变量。
答案 1 :(得分:2)
docker run定义为:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
docker-compose run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
在这两种情况下,最终ARGS
(可能是OP问题的" APP_OPTIONS
&#34;)将被传递给容器命令。< / p>
请注意,某些docker run
选项可以在docker-compose run
中使用(谎言-d
,以运行容器命令分离),但不能全部使用。
答案 2 :(得分:2)
您需要查看Dockerfile并查看处理APP_OPTIONS的内容。有可能ENTRYPOINT采用选项标志。在这种情况下,请使用
指定要发送到入口点的命令command: [-flag1, -flag2]
这是有效的,因为当指定了两者时,Dockerfile中的COMMAND作为入口点的默认参数https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/