Skip to content

dobrosite/docker-mysql

Repository files navigation

Образы MySQL и MariaDB для разработки и тестирования сайтов

Целью этой библиотеки образов является предоставление разработчикам (в первую очередь разработчикам Добро.сайта) окружения Docker для разработки и тестирования сайтов, использующих MySQL, позволяющего решать следующие задачи.

  1. Выбор версии MySQL (включая уже официально неподдерживаемые).
  2. Готовые к работе инструменты разработки и отладки.

Принципы

  1. Единообразие. Все образы предоставляют делаются насколько это возможно похожими друг на друга по составу ПО, используемым версиями, настройкам и т. п.
  2. Настрой сам. Образы содержат широкий набор приложений и инструментов, но по умолчанию подключены только самые необходимые. Использование всего остального остаётся на усмотрение разработчика.

Подключение и использование

Образы рассчитаны на использование с docker-compose, поэтому все примеры даются для него.

Пример файла docker-compose.yml:

version: '3'
services:
    mysql:
        image: dobrosite/mysql:5.7
        environment:
            FILE_OWNER_UID: 1000
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: database
            MYSQL_USER: user
            MYSQL_PASSWORD: password
        volumes:
            - ./docker/var/mysql:/var/lib/mysql
            - ./db/migrations:/var/local/mysql/migrations

Переменные окружения

Некоторые настройки можно произвести через переменные окружения.

  • FILE_OWNER_UID — UID для пользователя mysql, от которого работает сервер баз данных.
  • MYSQL_MIGRATIONS_TABLE — имя таблицы для записи применённых миграций (по умолчанию migrations).
  • MYSQL_MIGRATIONS_DIR — путь к папке внутри контейнера, содержащей файлы миграций (по умолчанию /usr/local/mysql/migrations).

Миграции

Образы содержат простой автоматический механизм применения миграций.

При каждом запуске, если установлены переменные окружения MYSQL_ROOT_PASSWORD и MYSQL_DATABASE вызывается сценарий docker-mysql-migrate. Этот сценарий ищет внутри контейнера в папке, заданной переменной MYSQL_MIGRATIONS_DIR файлы *.sql и применяет их к базе, заданной переменной MYSQL_DATABASE. Применённые миграции записываются в таблицу, заданную переменной MYSQL_MIGRATIONS_TABLE, чтобы исключить их повторное применение.

About

Образы MySQL и MariaDB для Docker

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages