2017-09-20 8 views
0

プロダクションデプロイメントのために、1つのドッカーファイルにphp-fpmとnginxを組み合わせる必要があります。1つのドッカーファイルにPHP-fpmとnginxを組み合せる

だから、に優れている:7.1.8-FPMし、それの上にnginxの画像層をインストールします(1)PHPを使用してdockerfileを開始

(2)または、nginxイメージを使用し、apt-getを使用してphp-fpmをインストールすることをお勧めしますか?

PS:プロダクションデプロイ用のドッキング用の作成オプションはありません。私の開発環境では、既にドッカーの作成と2つの画像から簡単にマルチコンテナアプリを構築しています。私たちの組織devopsはprod環境用のドッカー作成ベースの配備をサポートしていません。

答えて

0

fpmで1つ、nginxで1つのコンテナを配備し、それらをリンクする必要があります。 supervisorを使用して同じコンテナ内の複数のプロセスを監視することができますが、Dockerの考え方では、コンテナごとに1つのプロセスを持つことです。

ような何か:

server { 
    index index.php index.html; 
    server_name php-docker.local; 
    error_log /var/log/nginx/error.log; 
    access_log /var/log/nginx/access.log; 
    root /code; 

    location ~ \.php$ { 
     try_files $uri =404; 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
     fastcgi_pass php:9000; 
     fastcgi_index index.php; 
     include fastcgi_params; 
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
     fastcgi_param PATH_INFO $fastcgi_path_info; 
    } 
} 

site.conf
docker run --name php -v ./code:/code php:7-fpm 
docker run --name nginx -v ./code:/code -v site.conf:/etc/nginx/conf.d/site.conf --link php nginx:latest 

(恥http://geekyplatypus.com/dockerise-your-php-application-with-nginx-and-php7-fpm/に触発さ)

+0

問題は、私たちのDevOpsチームはただ1つのドッキングウィンドウのファイルを望んでいることで、彼らの既存の展開を再利用ドッカービルドを1回しか実行せずにドッカーを実行するスタックスクリプト。ルールは、1つの単一のサービスが1つの単一のドッカーファイルを持つべきであるということです。上記のように複数のコンテナを実行する必要がある場合は、ドッカーの作成(これは私が開発用に持っているものですが、生産envは別の問題です)を使用するほうが簡単です。 – Andy

+0

1つのコンテナにphp-fpmとnginxの両方を実行すると、fastcgi_passはunix sockファイルか127.0.0.1:9000のどちらかを指しています – Andy

+1

本当に1つのイメージのみを使用する必要がある場合は、 'debian'または' 'nginx'と' php-fpm'の両方をインストールし、 'supervisord'を実行してください。 もう一つの可能​​性は、PHPを使うために別のプロセスを必要としない 'apache'を使うことです。 – Blusky

関連する問題