Изменить MYSQL_DATABASE et c. в docker сочинять - PullRequest
0 голосов
/ 12 февраля 2020

У меня возникли проблемы с получением docker для создания совершенно нового образа с новой базой данных.

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

Это мой сервис

mysql:
        build: ./mysql
        image: custom-mysql
        command: --default-authentication-plugin=mysql_native_password
        environment:
            MYSQL_ROOT_PASSWORD: dsadjkasjd
            MYSQL_DATABASE: correct_db
            MYSQL_USER: correct_user
            MYSQL_PASSWORD: correct_pass
        networks:
            main:
                aliases:
                    - database

        ports:
            - "3306:3306"
        volumes:
            - ./data/mysql:/var/lib/mysql

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

docker-compose down --rmi 'all'
docker-compose build --no-cache --pull

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

Есть ли какой-нибудь умный способ полностью удалить контейнер + образ и построить его заново с новой базой данных / пользователи?

Ответы [ 2 ]

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

Скрипт для создания базы данных с нуля (который оценивает заданные переменные среды) запускается только в первом поколении для тома, как вы можете видеть в https://github.com/docker-library/mysql/blob/master/5.7/docker-entrypoint.sh.

Теперь у вас есть две возможности: либо остановить контейнер, удалить том и перезапустить контейнер; или запустите bash в работающем контейнере, удалите данные dir /var/lib/mysql и перезапустите контейнер

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

Вы должны удалить том (или сделать его содержимое пустым), чтобы при новом запуске он генерировал новые файлы базы данных с новой конфигурацией.

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