Задать вопрос
IgorPI
@IgorPI

Docker, MySql is running?

Коллеги, здравствуйте!

Как определить факт запуска mysql в контейнере?

После того как все контейнеры запущены, база данных ещё не доступна, (запускается, создаёт таблицы, базы данных если таковых нет)
Первый запуск достаточно долгий.

Мне нужно как-то определить, что база данных готова.

Ниже код не подходит, так как определяет факт запуска контейнера, но мне это не нужно.
Мне нужно нечто похожее на это.
echo "Waiting for DB to start up..."
while(docker inspect rosinter.db --format '{{.State.Running}}' -eq 'false'){
    Start-sleep 5
}
  • Вопрос задан
  • 210 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
  • ProductStar
    Профессия: Java-разработчик
    9 месяцев
    Далее
  • GB (GeekBrains)
    Профессия Python-разработчик
    10 месяцев
    Далее
Решения вопроса 1
vasilyevmn
@vasilyevmn
DevOps
while ! mysqladmin ping -h"$DB_HOST" --silent; do
    sleep 1
done


Ну или компоуз аля:
version: "2.1"
services:
    api:
        build: .
        container_name: api
        ports:
            - "8080:8080"
        depends_on:
            db:
                condition: service_healthy
    db:
        container_name: db
        image: mysql
        ports:
            - "3306"
        environment:
            MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
            MYSQL_USER: "user"
            MYSQL_PASSWORD: "password"
            MYSQL_DATABASE: "database"
        healthcheck:
            test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
            timeout: 20s
            retries: 10
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы