0

我是码头工人的新手。我在 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 退出

我搜索了一段时间,试图让它工作,但此时我不知道我做错了什么。这是我试图在 docker 容器启动时运行它的 .sql 脚本之一。createTablePerson.sql

CREATE TABLE `myDatabase`.`Person` (
  `idPerson` INT NOT NULL AUTO_INCREMENT,
  `Name` VARCHAR(45) NOT NULL,
  `age` INT NOT NULL,
  PRIMARY KEY (`idPerson`));

谢谢。

4

1 回答 1

0

我进一步调查,似乎是因为我在 Windows 7 上,我必须使用在 VirtualBox VM 中运行的 docker-toolbox。我的脚本所在的位置似乎没有在 Windows 主机和 docker-toolbox 之间共享。我注意到文件被复制到容器中,但它们被视为空目录。我将脚本移至用户位置,似乎脚本已复制到容器并完美运行。现在我正在寻找一种方法来尝试使其他路径可见。我更喜欢将我的脚本放在我的 java 项目下。

于 2018-11-18T02:23:12.837 回答