Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como adicionar um script de inicialização a um contêiner do docker mysql?


Você precisa criar usuário via MYSQL_USER , MYSQL_PASSWORD env vars e use o volume /docker-entrypoint-initdb.d para mapear o diretório com seus scripts de inicialização (.sh , .sql , .sql.gz )
docker run -p 3306:3306 --name mysql-server \ 
 -v ~/Development/web/myproject/docker/mysql:/var/lib/mysql \
 -v ~/Development/web/myproject/docker/yourstartupscripts:/docker-entrypoint-initdb.d \
 -e MYSQL_ROOT_PASSWORD=root \
 -e MYSQL_USER=youruser \
 -e MYSQL_PASSWORD=youruserpassword \
 -d mysql:latest

Explicação de:https://hub.docker.com/_/mysql/

MYSQL_USER, MYSQL_PASSWORD
Essas variáveis ​​são opcionais, usadas em conjunto para criar um novo usuário e definir a senha desse usuário. Este usuário receberá permissões de superusuário (veja acima) para o banco de dados especificado pelo MYSQL_DATABASE variável. Ambas as variáveis ​​são necessárias para que um usuário seja criado.

Inicializando uma nova instância
Quando um container é iniciado pela primeira vez, um novo banco de dados com o nome especificado será criado e inicializado com as variáveis ​​de configuração fornecidas. Além disso, ele executará arquivos com extensões .sh , .sql e .sql.gz que são encontrados em /docker-entrypoint-initdb.d . Os arquivos serão executados em ordem alfabética. Você pode facilmente preencher seus serviços mysql por montando um dump SQL nesse diretório e forneça imagens personalizadas com dados contribuídos. Os arquivos SQL serão importados por padrão para o banco de dados especificado pelo MYSQL_DATABASE variável.