Я думаю, что вам нужна многоэтапная сборка:
FROM mysql:5.7 as builder
# needed for intialization
ENV MYSQL_ROOT_PASSWORD=somepassword
ADD initialize.aql /docker-entrypoint-initdb.d/
# That file does the DB initialization but also runs mysql daemon, by removing the last line it will only init
RUN ["sed", "-i", "s/exec \"$@\"/echo \"not running $@\"/", "/usr/local/bin/docker-entrypoint.sh"]
RUN ["/usr/local/bin/docker-entrypoint.sh", "mysqld", "--datadir", "/initialized-db"]
FROM mysql:5.7
COPY --from=builder /initialized-db /var/lib/mysql
Вы можете поместить свои скрипты инициализации в initialize.sql (или выбрать другой способ инициализации вашей базы данных).
Полученное изображение является базой данных, которая уже инициализирована.Вы можете использовать его и выбросить, как вам нравится.
Вы также можете использовать этот процесс для создания разных изображений (пометить их по-разному) для разных вариантов использования.
Надеюсь, что это ответ на ваш вопрос.