2017-12-04 24 views
0

私はデータベースとテーブルを生成するmysqlスクリプトを実行するドッカーコンテナを作成しようとしています。私Dockerfileは次のようになります。私はそれを実行したときにDockerでmysqlスクリプトを実行する際にエラーが発生しましたか?

FROM mysql:latest 


WORKDIR/


ADD ./


EXPOSE 3306 

CMD mysql -u "root" -proot < "schema.sql" 

は、しかし、私は次のエラーメッセージが出ます:

mysql: [Warning] Using a password on the command line interface can be insecure. 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) 

私はパスワードのみのエラーを取得するSQLスクリプトを実行すると。あなたの助けに感謝します!

答えて

0

公式のドッカーイメージの大部分と同様に、エントリポイントからコンテナを構成できます。

mysql docker pageに記載されています。 MYSQL_ROOT_PASSWORDMYSQL_DATABASEMYSQL_USERMYSQL_PASSWORDを使用してmysqlインスタンスを設定できます。

この変数は、-eの環境変数dockerまたはenvironmentsのオプションを使用してdocker-compose.ymlファイルに設定します。

hereには、起動時に/docker-entrypoint-initdb.d/ imageにコピーされたファイル(.sh、.sql、.sql.gz)が実行されることがわかります。

だから、このようDockerfileを書き込むことができます。

FROM mysql:latest 

COPY schema.sql /docker-entrypoint-initdb.d/ 
# No need to override CMD default command of mysql image 
関連する問題