繁体   English   中英

带有非默认 docker-compose.yml 文件的 docker-compose ps

[英]docker-compose ps with non-default docker-compose.yml file

我对使用 docker-compose 比较陌生,并且正在使用以下命令运行堆栈

docker-compose \
  --project-name version-12 \
  -f installation/docker-compose-common.yml \
  -f installation/docker-compose-erpnext.yml \
  --project-directory installation \
  up -d

现在,使用非默认docker-compose.yml文件,我无法让docker-compose.yml docker-compose stopdocker-compose ps工作。 我曾尝试使用-f--project-name标志,但无法实现。

任何人都可以建议如何在这种情况下进行这项工作吗?

您需要为需要运行的每个命令重复所有docker-compose选项。

有两种方法可以解决这个问题。 一种是编写一个调用此命令的 shell 脚本包装器:

#!/bin/sh
# I am `docker-compose-erpnext.sh`
# Run me with any normal `docker-compose` options
exec docker-compose \
  --project-name version-12 \
  -f installation/docker-compose-common.yml \
  -f installation/docker-compose-erpnext.yml \
  --project-directory installation \
  "$@"

Docker Compose 的大部分设置也支持环境变量 其中许多反过来也可以包含在.env文件中 您不能以这种方式指定--project-directory ,但它被记录为默认为 Compose 文件的目录。

export COMPOSE_PROJECT_NAME=version-12
export COMPOSE_FILE=installation/docker-compose-common.yml:installation/docker-compose-erpnext.yml
docker-compose up -d
docker-compose ps

您可以将这两个设置放在运行.env docker-compose的目录(不是installation子目录)中的文件名.env中; 但如果您尝试管理多个部署,则无法为文件指定备用名称(既没有 CLI 选项,也没有环境变量设置)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM