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.

Другие вопросы по тегам