docker-compose запускает скрипты при инициализации контейнера
Я новичок в докере. Я нахожусь на машине Windows 7 и использую панель инструментов докера. Я пытаюсь написать docker-compose.yml для MySQL, который создает базу данных и запускает 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`));
Благодарю.
1 ответ
Я исследовал дальше, и кажется, потому что я нахожусь на Windows 7, и я должен использовать docker-toolbox, который работает в VM VirtualBox. Кажется, что место, где у меня были мои скрипты, не является общим для хоста windows и docker-toolbox. Я заметил, что файлы были скопированы в контейнер, но они считались пустыми каталогами. Я переместил свои скрипты в местоположение пользователя, и кажется, что скрипты скопированы в контейнер и отлично работают. Сейчас я ищу способ попробовать сделать другие пути видимыми. Я предпочитаю иметь мои сценарии под моим проектом Java.