Рубрики
Uncategorized

Как инициализировать последовательно два контейнера в Docker Composer

Введение Иногда у нас есть более одного изображения, которые мы хотим последовательно инициализировать, что означает начать вторую, пока первый не был запущен, это может потребоваться в случае, если он …

Автор оригинала: Rodrigo Ruiz.

Вступление

Иногда у нас есть более одного изображения, которые мы хотим инициализировать последовательно, что означает начать вторую, пока первый не был запущен, это может потребоваться в случае, если один контейнер зависит от другого, например, давайте навестите в изображении базы данных и Служба, которая будет использовать его, правильный способ — дождаться, пока база данных не будет начать службу, которая будет использовать ее.

Шаг за шагом Руководство (рабочий пример)

  1. Для этого мы будем использовать сценарий Bash, названный wait-for-it.sh, который можно найти в этом ссылке Github: https://github.com/vishnubob/wait-for-it. Этот скрипт является чистым сценарием Bash, который будет ждать наличия хоста и TCP-порта. Это полезно для синхронизации спина взаимозависимых услуг.

  2. В нашем файле docker-compose.yml мы расскажем вторую службу, чтобы дождаться доступов, пока не будет доступен первый сервис, пока не будет запущена база данных.

  3. Таким образом, в этом примере мы будем использовать изображение MongoDB, доступное в Docker-Hub. a. Чтобы создать локальное изображение изображения MongoDB, мы запускаем следующую команду: 1 Докер тянуть Монго. б. Мы будем использовать Image Ubuntu в качестве клиентской службы для нашей контейнера для базы данных, просто запустите следующую команду, чтобы сделать изображение Ubuntu доступно. 1. Докер тянуть Ubuntu c. Тогда нам нужно создать DockerFile, чтобы создать наше собственное изображение на базе Bitebox. 1. Создать папку с именем Waitforit: MKDIR Waitforit 2. Создайте следующий файл в папке с именем WiiteForit только что создан. 3. DockerFile должен выглядеть как следует следующее (см. Прилагаемую Dockerfile для получения дополнительной информации): DockerFile 4 Из Убунту Сопровождает Родриго Руис, https://github.com/rodrigoruizbaca Workdir/usr/local/src/ Копировать ждать-for-it.sh/usr/local/src/ Запустить chmod + x/usr/local/src/wait-for-it.sh

    др. Тогда нам нужно создать наш докер-состав .yml 1 Создайте файл с именем Docker-Compose.yml внутри папки waitforit, которую мы просто создаем. Смотрите прикрепленный докер-составляющий .yml и примите его в качестве примера. 2. Тогда нам нужно только запустить следующую команду: 1 докер

Файлы ***

DockerFile: от Ubuntumainter Rodrigo Ruiz, https://github.com/rodrigoruizbacawokdir/usr/local/src/copy quit-for-it.sh/usr/local/src/run chmod + x/usr/local/src/ждать -Фойт.ш.

—Dont Просто скопируйте — paste Следующий код, используйте место для отступа к файлу (DONT TAB).

Docker-Compose.yml: версия: ‘3’ Услуги: DB: Image: Mongo Порты: — «27017: 27017» Объемы: -/TMP/Datadir:/data/db #Change/usr/local/datadir для любого другого или просто создайте этот. ждать-it: image: waitforit dependes_on: — «DB» Команда:> bash -c «/usr/local/src/wait-for-it.sh db: 27017»

Оригинал: «https://www.codementor.io/@rodrigoruiz/how-initialize-sequentially-two-containers-in-docker-composer-eth4mw0zw»