Точка входа в Dockerfile - PullRequest
       2

Точка входа в Dockerfile

0 голосов
/ 19 сентября 2019

Я сделал образ докера.

Я правильно скопировал скрипт init.sql.Дополнительно я правильно настроил базу данных.Когда я выполнил эту команду без ENTRYPOINT, внутри контейнера все работает, но когда я добавил это в Dockerfile к ENTRYPOINT и снова построил изображение, я вижу, что это показывает что-то вроде man-страницы mysql.Возбужденном (1).Я не могу получить никаких журналов, что может быть не так с этой командой?

Я думаю, что это не проблема базы данных, а самого докера.

ENTRYPOINT ["mysql", "-u", "my_user", "-pmy_pw",  "my_databse", "<", "init.sql"]

Ответы [ 2 ]

2 голосов
/ 19 сентября 2019

Как вы можете прочитать в документации , формат exec не выполняет команду с использованием оболочки sh или bash.Таким образом, перенаправление не будет работать там.

Чтобы эта точка входа работала, вы должны переписать ее:

ENTRYPOINT ["sh", "-c", "mysql -u my_user -pmy_pw my_databse < init.sql"]
1 голос
/ 19 сентября 2019

Вам необходимо переопределить точку входа в контейнер БД, поскольку точка входа выполняет некоторые сложные операции, такие как создание БД из сопоставленного сценария инициализации, установка пользователя и т. Д.

Все, что вам нужно для сопоставления "init.sql" с путем к контейнеру /docker-entrypoint-initdb.d

Инициализация свежего экземпляра

Когда контейнер запускается в первый раз, создается новая база данных с указанным именем и инициализируется с помощьюпредоставленные переменные конфигурации.Кроме того, он будет выполнять файлы с расширениями .sh, .sql and .sql.gz, которые находятся в /docker-entrypoint-initdb.d.Файлы будут выполнены в алфавитном порядке.Вы можете легко заполнить ваши службы mysql, смонтировав дамп SQL в этот каталог и предоставив пользовательские изображения с предоставленными данными.Файлы SQL будут импортированы по умолчанию в базу данных, указанную в переменной MYSQL_DATABASE.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...