私は私のdev環境を構築するためにドッカーを使用しています。私が持っているのは、nginxとphp-fpmです。 ./code:/codeDocker phpはpdo拡張をインストールします
- :
web:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./code:/code
- ./site.conf:/etc/nginx/conf.d/site.conf
links:
- php
PHP: 画像:PHP:7-FPM ボリュームだから私はドッカ-compose.ymlを作成したドッキングウィンドウドックを以下
ここで何が起こるのですか?nginxイメージとpgp-fpmイメージを呼び出し、リンクします。
私はまたsite.confファイル作成しました:だからここ
server {
index index.php;
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;
}
}
をすべてのサーバーのものです。
この設定では、私はうまく実行しましたphpinfo()
。とき私はしかし、私のアプリケーションコードを私はpdoのpdo_mysqlの拡張機能についてcomplaningエラーをaded。だからもっと研究して、Dockerfileが必要だと分かった。
私はドッキングウィンドウのファイルを作成し、それは、このコマンドを追加内側:もちろん
FROM php:7
RUN docker-php-ext-install pdo pdo_mysql
を、これは動作しません、私が意味するところ、この拡張機能をインストールしないとどのようにこれらを見て、私のphp-FPM supooseを行います拡張機能...?
あなたはDockerhubでPHPリポジトリ上のドキュメントを見てきました、これは一部です:https://でハブを.docker.com/_/php /?私はこれをApacheのバージョンではなく、fpmで行ってきました。 Apacheのバージョンでは、Dockerfileを作成してpre-reqsと 'RUN docker-php-ext-install-pdo_mysql'をインストールします。私は、FPMのための同様のメソッドがあると仮定し、そのREADMEと対応するgithubリポジトリを参照してください。 – ldg
'docker-compose up -d'を実行する前に' docker-compose build'を実行しましたか? –