2017-08-05 11 views
1

PHP-FPMがインストールされたDockerコンテナがあります。 -dオプションを指定して、それを起動するには、私はこれを試してみましたが、コンテナはすぐに終了します。DockerコンテナでPHP-FPMを起動する方法がわかりません

docker run -d --name u12php53 -p 9001:9000 php53 /usr/local/etc/php-fpm.sh 

/usr/local/etc/php-fpm.shの内容は次のとおりです。

docker run -it --name u12php53 -p 9001:9000 -v php53 

service php5-fpm start && tail -F /var/log/php5-fpm.log 

私はこのようなドッキングウィンドウを起動した場合

と手動でphp-fpm.shを起動すると、PHP-FPMが正常に動作し、ログファイルがstdoutに出力されます。

最終的な目標は、システムの起動(または再起動)してコンテナを起動するようにDockerを設定することです。

答えて

0

問題はservice php5-fpm startです。このコマンドを実行すると、php-fpmはシェルから切り離されます。しかし、Dockerは主要なプロセスが生きている間だけ動作します。

official imageのようにphp-fpmを実行してください:単純にentrypointを削除し、CMD ["php-fpm"]を追加してください。

また、なぜ自分のphp-fpmイメージを作成したいのですか? officialイメージを使用できますか?

+0

私はPHP 5.3を必要としなくなったとして、これまで私が見るように、サポートされています。メインプロセスではありません/usr/local/etc/php-fpm.sh?私は 'tail -F'を使うので、終了しません。もう1つの質問は、ドッカーを 'docker run -d --name u12php53 -p 9001:9000 php53 yes'コマンドで起動すると終了しないということです。 – Dmitriano

+0

thx、私は自分のイメージを構築するために何を理解した。メインプロセスは 'CMD'命令で開始されなければなりません。 'Entrypoint'は通常コンテナの準備に使用します:設定、マイグレーションなど。あなたのDockerfileを教えてください。 –

+0

PHP-FPMのインストール手順は、https://developernote.com/2017/07/php56-in-docker-with-nginx-on-ubuntu16/(Dockerfileもあります)にあります。私はPHP 5.6から始めましたが、最終的にPHP 5.3をUbuntu 12.04に基づく類似のドッカーファイルと共にインストールしました。このCMDをDockerfileに入れることができないように見えます。これは、bashを使用してインストール手順の多くを手作業で行ったためです。 – Dmitriano

0

おそらく解決策は以下のとおりです。

docker run -d --name u12php53 -p 9001:9000 -v php53 bash -c '/usr/local/etc/php-fpm.sh' 

おそらくそれはDockerfileでこれを行うのと同等です:

CMD ["sh", "/usr/local/etc/php-fpm.sh"] 
関連する問題