WordPress на Docker: монтировать том базы данных И импортировать существующую базу данных? - PullRequest
0 голосов
/ 21 февраля 2020

Я хочу вызвать локальный экземпляр существующей установки WordPress, используя Docker. Как я могу:

  1. импортировать существующую базу данных ...
  2. И сохранять изменения между перезапусками моего контейнера?

Я могу сделать каждый отдельно, но не могу заставить обоих работать. Если я использую том db_data, я начинаю с чистой базы данных. Если я этого не сделаю - он импортирует мою базу данных из existing.sql, но тогда я не смогу сохранить свои изменения между перезапусками контейнера.

My docker -compose.yml:

version: '3.3'

services:
  db:
    image: mysql:5.7
    volumes:
      - ./db/existing.sql:/docker-entrypoint-initdb.d/existing.sql
      - db_data:/var/lib/mysql # this works for task 2 but not task 1
    restart: always
    environment:
      # credentials here

  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    volumes:
      - ./code/:/var/www/html/
    environment:
      # credentials here
volumes:
  db_data: {}  # this works for task 2 but not task 1

Do Мне нужно использовать --volumes-from флаг как , описанный в документации здесь ?

1 Ответ

1 голос
/ 21 февраля 2020

Создать дополнительный том для дампов, например, иметь локальный каталог db/dump/ для SQL дампов:

      - ./db/existing.sql:/docker-entrypoint-initdb.d/existing.sql
      - ./db/dump/:/sql                                                   
      - db_data:/var/lib/mysql # this works for task 2 but not task 1

Скопируйте SQL дамп, который вы хотите импортировать в db/dump/import_this.sql. Затем присоедините к вашему контейнеру MySQL db следующим образом:

docker exec -it "YOUR_CONTAINER_ID" mysql -uroot -p YOUR_DB_NAME

Это вызовет командную строку MySQL, где вы теперь можете получить файл:

source /sql/import_this.sql

В качестве альтернативы , вы можете получить /docker-entrypoint-initdb.d/existing.sql, но я обычно предпочитаю иметь каталог, а не один файл.

Теперь у вас есть импортированная база данных постоянная.

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