docker在初始化容器时编写运行脚本

qyzbxkaa  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(357)

我是 Docker 的新手。我在Windows7机器上使用docker工具箱。我正在尝试为mysql编写docker-compose.yml,它创建一个数据库并运行两个脚本(create table和insert)

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| mysql:[警告]在命令行界面上使用密码可能不安全。
mysql-image|错误:无法初始化批处理| readline-可能是输入源是目录或块设备。docker\u mysql-image\u 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`));

谢谢。

mdfafbf1

mdfafbf11#

我进一步调查,似乎是因为我在Windows7上,我必须使用运行在virtualbox虚拟机中的docker工具箱。似乎我的脚本所在的位置在windows主机和docker工具箱之间没有共享。我注意到这些文件被复制到了容器中,但它们被认为是空目录。我把我的脚本移到了用户的位置,看起来脚本被复制到了容器中并且运行得很好。现在我正在寻找一种方法,试图让其他路径可见。我更喜欢把脚本放在java项目下。

相关问题