我正在尝试使用docker-compose up
您可以使用的方式docker run [APP_CONTAINER_NAME] [APP_OPTIONS]
。
3 回答
Docker Compose 的重点是您不必记住所有命令行开关。
如果您想为不同的上下文更改环境变量,我建议您common.yml
为 Compose 创建一个基础文件。common.yml
然后,您可以为每个不同的上下文创建一个新的 yml 文件,从带有extends
指令的文件继承。然后,您可以使用该-f
标志docker compose
在上下文之间切换。
另请注意,如果您只是更改 yml 中的变量,Compose 不应“重建”任何内容,并且如果对您更有效,您可以使用外部文件作为环境变量。
docker run定义为:
docker run [OPTIONS] IMAGE[:TAG|@DIGEST] [COMMAND] [ARG...]
Whiledocker compose run
定义为:
docker-compose run [options] [-e KEY=VAL...] SERVICE [COMMAND] [ARGS...]
在这两种情况下,最终ARGS
结果(可能是APP_OPTIONS
OP 问题的“”)都将传递给容器命令。
请注意,某些docker run
选项可以按原样使用docker-compose run
(位于 a -d
,以分离运行容器命令),但不是全部。
You need to look at the Dockerfile and see what is handling the APP_OPTIONS. Chances are that the ENTRYPOINT is taking the option flags. In this case, specify the command to send to the entrypoint using
command: [-flag1, -flag2]
This works because the COMMAND in the Dockerfile acts as default args to the entrypoint when both are specified https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/