docker-在容器初始化时编写运行脚本
docker-compose run scripts when container is initialized
我是 docker 的新手。我在 windows 7 机器上使用 docker 工具箱。
我正在尝试为 MySQL 编写一个 docker-compose.yml,它创建一个数据库和 运行s 2 个脚本(创建 table 并插入)
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: [Warning] Using a password on the command line
interface can be insecure.
mysql-image_1 | ERROR: Can't initialize
batch_readline - may be the input source is a directory or a block
device. docker_mysql-image_1 exited with code 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`));
谢谢。
我进一步调查,似乎是因为我在 Windows 7 上,我必须在 VirtualBox VM 中使用 docker-工具箱,其中 运行s。 windows 主机和 docker-工具箱之间似乎没有共享我的脚本位置。我注意到文件已复制到容器中,但它们被视为空目录。我将我的脚本移动到用户位置,似乎脚本被复制到容器并且 运行 完美。现在我正在寻找一种方法来尝试使其他路径可见。我更喜欢将我的脚本放在我的 java 项目下。
我是 docker 的新手。我在 windows 7 机器上使用 docker 工具箱。 我正在尝试为 MySQL 编写一个 docker-compose.yml,它创建一个数据库和 运行s 2 个脚本(创建 table 并插入)
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: [Warning] Using a password on the command line interface can be insecure.
mysql-image_1 | ERROR: Can't initialize batch_readline - may be the input source is a directory or a block device. docker_mysql-image_1 exited with code 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`));
谢谢。
我进一步调查,似乎是因为我在 Windows 7 上,我必须在 VirtualBox VM 中使用 docker-工具箱,其中 运行s。 windows 主机和 docker-工具箱之间似乎没有共享我的脚本位置。我注意到文件已复制到容器中,但它们被视为空目录。我将我的脚本移动到用户位置,似乎脚本被复制到容器并且 运行 完美。现在我正在寻找一种方法来尝试使其他路径可见。我更喜欢将我的脚本放在我的 java 项目下。