私は最近の投稿Setting up MySQL and importing dump within Dockerfileを読んだが、答えを見つけることができなかった。Docker mysql issue
私が望むのは、作成されたデータベース、ユーザー、その他のデータを使ってカスタムのmysqlイメージを構築することです。ここに私のDockerfile(簡体字)である:
FROM mysql:5.7
ENV MYSQL_ROOT_PASSWORD=root
RUN service mysql start && \
mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "CREATE DATABASE mydb;" && \
mysql -uroot -p$MYSQL_ROOT_PASSWORD -e "SHOW databases;" && \
service mysql stop
ENTRYPOINT service mysql start && /bin/sh
画像が正常に構築され、mydbというデータベースは「SHOWデータベース」の出力として表示されます。 しかし、このイメージに基づいてコンテナを実行すると、ルートパスワードが空でmydbデータベースが見つからないことがわかります。
どうすれば修正できますか?ありがとう?
ありがとう、セルゲイ。私はそれを試みます。しかし、RUN命令で作成したデータベースが失われたのはなぜですか?最初のコンテナを実行する前にデータベース関連のデータを初期化することは意味がありませんか? – Sergey
これは良い質問です。そのベースイメージを使用する場所に 'Dockerfile'を表示できますか? –
Sergey、私は質問の説明にDockerファイルの内容を指定しました – Sergey