#docker #dockerfile
#docker #dockerfile
Вопрос:
Я пытаюсь загрузить базу данных как часть создания образа с помощью dockerfile. В конце я пытаюсь загрузить данные в базу данных mysql, добавив файл оболочки как часть точки входа docker.
COPY ./scripts/initdb.sh /docker-entrypoint-initdb.d/
initdb.sh
имеет следующее содержимое
mysql -u root -p<root_password> <database_name> < /data/dump.sql
Проблема в том, что при выполнении файла я получаю следующую ошибку:
: Нет такого файла или directory/initdb.sh : строка 1: /data/dump.sql
Я проверил следующее
- файлы существуют в правильном каталоге
- разрешение правильное (
-rwxr-xr-x
) - изменено разрешение через
RUN chmod x /docker-entrypoint-initdb.d/*.sh
но, похоже, ничего не работает, уверен, что мне не хватает чего-то простого.
Комментарии:
1. Вы должны иметь возможность просто поместить
dump.sql
файл напрямую/docker-entrypoint-initdb.d
; это работает лучше? Есть ли#!/bin/sh
или подобная строка в начале сценария оболочки? Вы дважды проверяли окончания строк DOS и Unix?2. Отлично ! Гениально! было 2 проблемы — а) отсутствовал #!/bin / sh, а затем при переносе из Windows ^M проникал. Спасибо