Je veux créer une image docker au-dessus de celle de mysql qui contient déjà le schéma nécessaire pour mon application.
J'ai essayé d'ajouter des lignes au Dockerfile qui importera mon schéma en tant que fichier sql. Je l'ai fait en tant que tel (mon 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"
À ma connaissance, cela n'a pas fonctionné car l'image de docker mysql ne contient pas de client mysql (les meilleures pratiques indiquent "n'ajoutez pas les choses simplement parce qu'elles seront agréables à avoir") (ai-je tort à ce sujet?)
quelle pourrait être une bonne façon de procéder? J'ai pensé à plusieurs choses, mais elles semblent toutes être des solutions de contournement compliquées.
- installez le client mysql, faites ce que j'ai à faire avec, puis supprimez / purgez-le.
- copiez le binaire client mysql dans l'image, faites ce que j'ai à faire, puis supprimez-le.
- Créez le schéma dans un autre serveur sql et copiez directement le fichier db (cela semble très compliqué et me semble être un pool de problèmes contaminé)
Aucune suggestion? Si tout va bien d'une manière qui sera facile à entretenir plus tard et peut-être également conforme aux meilleures pratiques?