Почему редактирование содержимого docker -compose.yml не отражается? - PullRequest
0 голосов
/ 29 февраля 2020

Я хочу использовать MySQL с помощью Docker.

. Я написал следующий DockerFile и docker -compose.yml.

Dockerfile

FROM mysql:8.0
RUN mkdir /var/log/mysql
RUN touch /var/log/mysql/mysqld.log

docker -compose.yml

version: '3'
services:
  dbserver:
    build: ./docker/mysql
    image: test-db:0.0.1
    restart: always
    environment:
      MYSQL_DATABASE: prototype
      MYSQL_USER: user
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: rootpassword
    ports:
      - "3306:3306"
    volumes:
      - ./docker/mysql/initdb.d:/docker-entrypoint-initdb.d
      - ./docker/mysql/conf.d:/etc/mysql/conf.d
      - ./log/mysql:/var/log/mysql
      - ./docker/mysql/data:/var/lib/mysql
volumes:
  mysql-bd:
    driver: local

Я успешно выполнил сборку и смог подтвердить базу данных.

Затем я захотел изменить имя базы данных, поэтому я отредактировал часть yml файл следующий.

До

      MYSQL_DATABASE: prototype

После

      MYSQL_DATABASE: test_db

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

Я удалил контейнер MySQL и попытался еще раз, но результат не изменился.

Почему редактирование содержимого docker -compose.yml не отражается?

1 Ответ

2 голосов
/ 29 февраля 2020

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

...
volumes:
  ./docker/mysql/data:/var/lib/mysql
...

Удалите локальный каталог ./docker/mysql/data и перезапустите ваши службы. Изменение базы данных будет отражено.

...