今天执行如下指令时遇到了报错:
1 2 3 4 5 6
| ➜ setup git:(master) ✗ docker cp ./data/ moegirl-db:/tmp/ Successfully copied 542MB to moegirl-db:/tmp/ ➜ setup git:(master) ✗ docker exec -it moegirl-db ls /tmp/data enmoegirl.sql wikidata.sql ➜ setup git:(master) ✗ docker exec -it moegirl-db mysql -u root -D wikidata < /tmp/data/wikidata.sql zsh: no such file or directory: /tmp/data/wikidata.sql
|
我把文件复制到了容器内,文件也确实在容器内,但是执行导入指令时却报错找不到文件。
您猜怎么着?
这是因为 MySQL 官方镜像预设的 shell 是 zsh,zsh 中的 <
会被解析为重定向,妈的神金……
修复方法是明确使用 bash:
1 2 3 4
| docker cp ./data/ moegirl-db:/tmp/ docker exec -it moegirl-db bash -c "mysql -u root -D enmoegirl < /tmp/data/enmoegirl.sql" docker exec -it moegirl-db bash -c "mysql -u root -D wikidata < /tmp/data/wikidata.sql" docker exec -it moegirl-db rm -rf /tmp/data
|
为什么会有官方镜像把 shell 配置成 zsh 的,啊米诺斯!