9

我正在尝试使用docker-compose up您可以使用的方式docker run [APP_CONTAINER_NAME] [APP_OPTIONS]

4

3 回答 3

3

Docker Compose 的重点是您不必记住所有命令行开关。

如果您想为不同的上下文更改环境变量,我建议您common.yml为 Compose 创建一个基础文件。common.yml然后,您可以为每个不同的上下文创建一个新的 yml 文件,从带有extends指令的文件继承。然后,您可以使用该-f标志docker compose在上下文之间切换。

另请注意,如果您只是更改 yml 中的变量,Compose 不应“重建”任何内容,并且如果对您更有效,您可以使用外部文件作为环境变量。

于 2015-04-20T07:59:51.927 回答
2

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_OPTIONSOP 问题的“”)都将传递给容器命令。

请注意,某些docker run选项可以按原样使用docker-compose run(位于 a -d,以分离运行容器命令),但不是全部。

于 2015-04-19T13:38:55.860 回答
2

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/

于 2017-02-09T18:00:00.290 回答