我是Docker的新手。我在Windows 7机器上,并使用docker工具箱。 我正在尝试为MySQL写一个docker-compose.yml,它创建一个数据库并运行2个脚本(创建表和插入)
version: '3'
services:
mysql-image:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: myDatabase
MYSQL_USER: test
MYSQL_PASSWORD: pwtest
ports:
- "3306:3306"
volumes:
- ./sqlscripts/:/docker-entrypoint-initdb.d/
volumes:
sqlscripts:
我可以连接到数据库,但是我遇到的问题是运行脚本。 大多数情况下,我遇到以下错误:
mysql-image_1 | mysql:[警告]在命令行上使用密码 界面可能不安全。
mysql-image_1 |错误:无法初始化 batch_readline-可能是输入源是目录还是块 设备。 docker_mysql-image_1退出,代码为1
我搜索了一段时间,试图使其正常工作,但目前我不知道自己在做什么错。这是我的.sql脚本之一,我正在尝试在docker容器启动时运行它。 createTablePerson.sql
CREATE TABLE `myDatabase`.`Person` (
`idPerson` INT NOT NULL AUTO_INCREMENT,
`Name` VARCHAR(45) NOT NULL,
`age` INT NOT NULL,
PRIMARY KEY (`idPerson`));
谢谢。
答案 0 :(得分:0)
我作了进一步调查,似乎是因为我在Windows 7上并且必须使用在VirtualBox VM中运行的docker-toolbox。看来我拥有脚本的位置未在Windows Host和docker-toolbox之间共享。我注意到文件已复制到容器中,但它们被视为空目录。我将脚本移动到用户位置,看来脚本已复制到容器中并可以完美运行。现在,我正在寻找一种尝试使其他路径可见的方法。我更喜欢将脚本放在我的Java项目下。