ホストオペレーティングシステム:Ubuntu 16.04 x86_64
ドッカーオペレーティングシステム:Alpine Linux Edge
ドッカーバージョン:1.11.0、ビルド4dc5990
MariaDB バージョン: 10.1.13
Dockerfileを介してMariaDBをインストールし、エントリポイント(startup.sh)で起動しようとしましたが失敗しました。
すべてのファイル(Dockerfile、my.cnf、start.sh)とdocker build .
ログはここにあります。https://gist.github.com/rakshazi/1048c45ba7da181b9e87ed5ed4faef9b
私の設定には何の問題があり、どのように解決しますか?
答え1
Dockerfileの各RUN行は、コンテナ内で一意のプロセスとして実行されます。実行中のコマンド mysql_install_db --verbose && /usr/bin/mysqladmin -u root Password 'password' は、すでに実行中の mysql/mariadb サーバーと通信を試みます。これはコンテナで実行される唯一のものであり、実行中のmysqlサービスがないため失敗します。
通常、この種の操作は、ビルド時ではなく実行時にENTRYPOINTスクリプトで実行する必要があります。これは、mysql / mariadbファイルを階層ファイルシステムではなくボリュームに保存したいからです。
プログラマー@の答えhttps://forums.docker.com/t/cant-build-container-with-mariadb/10256/2