Что нужно прописать в volumes чтобы хранить базу данных друпала не только в контейнере но и на компьютере?

Аватар пользователя Joseph Joseph 9 октября в 17:44

У меня ОС Ubuntu 18.04. Я скачал Drupal9 на свой рабочий стол c помощью: composer create-project drupal/recommended-project project_name. Поднимать буду Drupal проект с помощью Docker-based Drupal stack и после запуска образов и прописав в url: http://projectname.localhost:8000/ у меня запустится окно установки Drupal.

Но перед этим мне нужно в файле docker-compose.yml в части кода который принадлежит mariadb раскомментировать volumes и что-то прописать чтобы хранить базу данных друпала не только в контейнере но и на компьютере. Что именно нужно прописать я не знаю.

services:
  mariadb:
    image: wodby/mariadb:$MARIADB_TAG
    container_name: "${PROJECT_NAME}_mariadb"
    stop_grace_period: 30s
    environment:
      MYSQL_ROOT_PASSWORD: $DB_ROOT_PASSWORD
      MYSQL_DATABASE: $DB_NAME
      MYSQL_USER: $DB_USER
      MYSQL_PASSWORD: $DB_PASSWORD
#    volumes:
#      - ./mariadb-init:/docker-entrypoint-initdb.d # Place init .sql file(s) here.
#      - /path/to/mariadb/data/on/host:/var/lib/mysql # Use bind mount

# Place init .sql file(s) here.

Это мне нужно прописать путь к какому-то файлу .sql? Как узнать где он находится? И как инициализировать его?

# - /path/to/mariadb/data/on/host:/var/lib/mysql # Use bind mount

А что в этой строке нужно прописать? У меня только mysql на компьютере установлена. Mariadb нет. Ведь смысл докера в том, чтобы не устанавливать и не настраивать ничего в своей ОС, и раньше докер просто устанавливал mariadb в контейнере.

Где именно хранить базу данных на моем компьютере мне не принципиально. Главное чтобы если данные в контейнере по каким-то причинам будут утраченные я смог их взять с моего компьютера.
Возможно кто-то уже работал с docker4drupal и сможете привести пример что вы прописывали в volumes в своем проекте.

Комментарии

Аватар пользователя Joseph Joseph 9 октября в 18:45

Спасибо. А мне только эту строку нужно прописать?:
- ./db/source:/var/lib/mysql
Или эту также?:
- ./db/init:/docker-entrypoint-initdb.d

Аватар пользователя bsyomov bsyomov 10 октября в 0:08

Первая, это монтирование папки на хост машине с данными Mysql в контейнер.
Вторая строка, это монтирование внешней папки с начальными данными для инициалиализации mysql в контейнер. В папку можно положить, sql скрипты создающие какие-нибудь базы, пользователей, загружающие какие-нибудь данные и.т.п. Надо оно вам или нет, вопрос к вам. Smile