docker -compose ps с нестандартным файлом docker -compose.yml - PullRequest
0 голосов
/ 18 марта 2020

Я относительно новичок в использовании 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 stop, docker-compose ps на работу. Я пытался использовать флаги -f или --project-name, но не смог этого сделать.

Может кто-нибудь любезно посоветовать, как заставить это работать в таком сценарии?

1 Ответ

0 голосов
/ 18 марта 2020

Вам необходимо повторить все опции docker-compose для каждой команды, которую нужно выполнить.

Есть два пути решения этой проблемы. Один из них - написать оболочку сценария оболочки, которая вызывает эту команду:

#!/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); но если у вас есть несколько развертываний, которыми вы пытаетесь управлять, вы не можете указать альтернативное имя для файла (для него нет ни параметра CLI, ни параметра переменной среды).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...