Когда вы запускаете команду docker exec <container_name> <command>
, command
будет выполняться внутри контейнера, и поскольку MYFILE.sql
не существует внутри этого контейнера, он обязательно выдаст ошибки.
Другая проблема заключается в что контейнер уже создан, вы не можете смонтировать файл внутри, если не хотите воссоздать контейнер.
Вот обходной путь для этой проблемы:
- Копировать файл
sql
в контейнер
docker cp ./MYFILE.sql MYCONTAINER:/tmp/MYFILE.sql
Теперь, когда файл уже находится внутри контейнера по пути
/tmp/MYFILE.sql
, вы можете выполнить свою команду как
docker exec -i MYCONTAINER mysql -uMYUSER -pMYPASS@ -f -D MYDATABASE < /tmp/MYFILE.sql