2016-12-13 22 views
3

PHP-FPM 7.1のDockerfileで作業しています。私はdocker-composeを使用していますので、これは私がコンテナを起動する方法です

CMD ["php71-php-fpm"] 

docker-compose up -d 

コンテナはこのラインごとに(明らかに)罰金コンパイル:私は次の行でDockerfileを終了しています

Successfully built 014e24455b53 
WARNING: Image for service php was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`. 
Creating php71-fpm 

しかし、それは次のエラーで終了します。

ERROR: for php Cannot start service php: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"exec: \\\"php71-php-fpm\\\": executable file not found in $PATH\"\n" 
ERROR: Encountered errors while bringing up the project. 

私は次のことを試してみました:

CMD php71-php-fpm 

とエラーは消えますが、コード127と、コンテナ出口:

> docker-compose ps 
    Name    Command    State  Ports 
------------------------------------------------------- 
php71-fpm /bin/sh -c php71-php-fpm Exit 127 

私がここで行方不明ですか?

私は次のような答えhereを発見した

UPDATE:パスが正しく設定されないように、私は、ファイルphp71-paths.shが行われていないことを考えさせる

Value 127 is returned by /bin/sh when the given command is not found within your PATH system variable and it is not a built-in shell command. In other words, the system doesn't understand your command, because it doesn't know where to find the binary you're trying to call.

もう一度、私は行方不明ですか?

このphp71-fpmはnginxのを実行している別の容器にリンクされます(これはWIPとドッカーを学ぶための私の方法です)

ここでは、あなたが見てみましょうするための完全なDockerfileです。

答えて

2

Dockerによって実行されるデフォルトのシェルがthis answerのログインシェルでないため、/etc/profile.d/のスクリプトが処理されないため、問題が発生していると思います。

プロファイル処理が必要な場合は、最後の行をCMD ["/bin/sh", "-l", "-c", "php71-php-fpm"]に変更してログインシェルを起動してみてください。

+0

私は前と同じ結果を得ました – ReynierPM

+0

イメージに実行可能ファイルが存在しますか?あなたのイメージ上で 'find/-name php71-php-fpm1'を実行すると、'/etc/logrotate.d'にエントリが見つかります。 – shiv

+0

**注**私はもともと私の答えで '-c'を忘れてしまった。申し訳ありません。しかし 'CMD [" env "]'と 'CMD ["/bin/sh "、" -l "、" -c "、" env "]でイメージを走らせると、あなたの' 'PATH ' – shiv

関連する問題