Включить каталог файлов docker-compose - PullRequest
0 голосов
/ 25 мая 2018

Как мне запустить docker-compose с базой docker-compose.yml и целым каталогом файлов docker-compose.

Как если бы у меня была такая структура каталогов:

parentdir
    docker-compose.yml
    folder1/
        foo.yml
        bar.yml
    folder2/
        foo.yml
        other.yml

Какя могу указать, какая папка манифестов запускается при запуске compose?

Ответы [ 2 ]

0 голосов
/ 10 июня 2018

Мой лучший вариант состоял в том, чтобы в базовом каталоге моего проекта был файл run.bash.

Затем я помещаю все свои файлы композиции в каталог скажем compose/, затем запускаю его с помощью этой команды:

docker-compose $(./run.bash) up

run.bash:

#!/usr/bin/env bash

PROJECT_NAME='projectname'     # need to set manually since it normally uses current directory as project name
DOCKER_PATH=$PWD/compose/*
MANIFESTS=' '

for dockerfile in $DOCKER_PATH
do
    MANIFESTS="${MANIFESTS} -f $dockerfile"
done

MANIFESTS="${MANIFESTS} -p $PROJECT_NAME"

echo $MANIFESTS
0 голосов
/ 25 мая 2018

Надеюсь, я хорошо понял ваш вопрос.Вы можете использовать -f флаги: docker-compose -f docker-compose1.yml

Редактировать Чтобы ответить на ваш комментарий: нет, вы не можете docker-compose несколько файлов только с одной командой.Вам необходимо указать путь к файлу, а не путь к каталогу.Что вы могли бы сделать, это создать скрипт оболочки, например:

#!/bin/bash

DOCKERFILE_PATH=$DOCKER_PATH

for dockerfile in $DOCKERFILE_PATH
do
  if [[ -f $dockerfile ]]; then
    docker-compose -f $dockerfile
  fi;
done

, вызвав его следующим образом: DOCKER_PATH=dockerfiles/* ./script.sh, который будет выполнять docker-compose -f с каждым файлом в DOCKER_PATH.

( * 1017 документов *)

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