У меня есть большая база данных c, в которую не вставляются / обновляются данные.
Я создал Dockerfile следующим образом, который хорошо работает для создания базы данных в контейнере docker. Существует множество вставок. sql скриптов в data /, которые заполняют базу данных.
FROM mysql:5.7
ADD data/* /docker-entrypoint-initdb.d/
EXPOSE 3306
Единственная проблема с этим состоит в том, что для запуска требуется много времени, поэтому я запустил контейнер локально и немного подкорректировал, чтобы данные сохранялись в контейнере, и я удалил сценарии запуска из каталога сценариев запуска. Затем я зафиксировал этот контейнер в новом docker образе (committed-image:v1
).
Это сработало, однако единственная проблема, с которой я столкнулся, заключается в том, что пароль для пользователя mysql root для этой базы данных фиксируется на пароле, который я использовал при фиксации изображения.
Мой вопрос: есть ли способ запустить другой сценарий запуска поверх этого нового образа (в котором уже есть существующая база данных)? Мне нужно изменить пароль пользователя root, чтобы он соответствовал переменной среды в контейнере (теперь нельзя использовать MYSQL_ROOT_PASSWORD
, поскольку сценарий запуска больше не запускается в контейнере, который вращается из нового зафиксированного образа).