嘗試使用 datadir 標誌執行 mysql 5.7 映像,並在 CMD 中包含 bash 腳本。
CMD ["--datadir=/data ; sh db_translations.sh"]
最終發生的是容器運行並為 mysql 建立一個名為 data 的資料夾; sh db_translations.sh。知道為什麼會發生這種情況嗎?
data 的資料夾; sh db_translations.sh
雖然許多容器都會bash /sh 作為ENTRYPOINT 並且這可以工作,但對於mysql 容器來說, >ENTRYPOINT 已經是一個腳本,它只接受提供的CMD,並且不會以腳本形式重新評估。
bash
sh
ENTRYPOINT
>ENTRYPOINT
CMD
評估
查看使用/docker-entrypoint-initdb.d 作為每個文件的腳本位置- https://hub.docker.com/_/mysql,儘管您可能需要重組腳本和環境。
/docker-entrypoint-initdb.d
雖然許多容器都會
bash
/sh
作為ENTRYPOINT
並且這可以工作,但對於mysql 容器來說,>ENTRYPOINT
已經是一個腳本,它只接受提供的CMD
,並且不會以腳本形式重新評估
。查看使用
/docker-entrypoint-initdb.d
作為每個文件的腳本位置- https://hub.docker.com/_/mysql,儘管您可能需要重組腳本和環境。