Я хочу создать образ docker поверх mysql, который уже содержит необходимую схему для моего приложения.
Я попытался добавить строки в Dockerfile, которые будут импортировать мою схему в виде файла sql. Я так и сделал (мой Dockerfile):
FROM mysql
ENV MYSQL_ROOT_PASSWORD="bagabu"
ENV MYSQL_DATABASE="imhere"
ADD imhere.sql /tmp/imhere.sql
RUN "mysql -u root --password="bagabu" imhere < /tmp/imhere.sql"
Насколько я понимаю, это не сработало, потому что образ docker mysql не содержит клиента mysql (лучшие практики заявляют: «не добавляйте вещи только потому, что они будут хороши») (я ошибаюсь по этому поводу?)
что может быть хорошим способом сделать это? Я имел в виду несколько вещей, но все они кажутся грязными обходными путями.
- установите клиент mysql, сделайте то, что я должен с ним сделать, затем удалите / очистите его.
- скопируйте двоичный файл клиента mysql в образ, сделайте то, что я должен сделать, затем удалите его.
- Создайте схему на другом сервере sql и скопируйте непосредственно файл db (это кажется очень грязным и звучит для меня как загрязненный пул проблем)
Какие-либо предложения? Надеюсь, таким способом, который будет легко поддерживать позже и, возможно, будет соответствовать лучшим практикам?