【发布时间】:2020-05-18 03:35:00
【问题描述】:
我从this answer 中发现了/docker-entrypoint-initdb.d 目录,还阅读了"How to use this image" MySQL documentation 的“初始化新实例”部分。但是当我在包含下面docker-compose.yml 文件的目录中运行docker-compose up 时,我的数据库没有初始化。
services:
# Use root/root as MySQL user/password credentials
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: root
MYSQL_PASSWORD: root
MYSQL_DATABASE: db
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/init:/docker-entrypoint-initdb.d/:ro
adminer:
image: adminer
restart: always
ports:
- 8080:8080
我确认./mysql/init 目录包含一个名为init.sql 的文件。我确认在我清空./mysql/data 目录并运行docker-compose up 后,会创建一个db 数据库。但是数据库没有填充,除非我在Adminer中手动执行脚本。 (我点击“导入”,然后选择文件并按“执行”按钮。)
在运行 docker-compose up 后,我在控制台输出中查找了表明尝试运行 init.sql 并且找不到任何内容的消息。
更新: MySQL 版本为 8.0.19。
【问题讨论】:
标签: mysql docker docker-compose init