Quero criar uma imagem do docker em cima do mysql que já contenha o esquema necessário para o meu aplicativo.
Tentei adicionar linhas ao Dockerfile que importariam meu esquema como um arquivo sql. Fiz isso como tal (meu 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"
No meu entender, isso não funcionou porque a imagem do docker mysql não contém um cliente mysql (o estado das práticas recomendadas "não adicione coisas apenas porque elas serão boas em ter") (estou errado sobre isso?)
qual pode ser uma boa maneira de fazer isso? Eu tinha algumas coisas em mente, mas todas elas parecem soluções alternativas complicadas.
- instale o cliente mysql, faça o que eu tenho que fazer com ele e remova / limpe-o.
- copie o binário do cliente mysql para a imagem, faça o que tenho que fazer e remova-o.
- Crie o esquema em outro servidor sql e copie o arquivo db diretamente (isso parece muito confuso e me parece um conjunto de problemas contaminado)
Alguma sugestão? Esperançosamente, de uma maneira que seja fácil de manter mais tarde e que talvez esteja em conformidade com as melhores práticas também?