2016-07-22 6 views
2

私は私の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を行います拡張機能...?

+0

あなたはDockerhubでPHPリポジトリ上のドキュメントを見てきました、これは一部です:https://でハブを.docker.com/_/php /?私はこれをApacheのバージョンではなく、fpmで行ってきました。 Apacheのバージョンでは、Dockerfileを作成してpre-reqsと 'RUN docker-php-ext-install-pdo_mysql'をインストールします。私は、FPMのための同様のメソッドがあると仮定し、そのREADMEと対応するgithubリポジトリを参照してください。 – ldg

+0

'docker-compose up -d'を実行する前に' docker-compose build'を実行しましたか? –

答えて

0

このDockerfileは私を助ける:

FROM php:fpm 
RUN apt-get update \ 
    && apt-get install -y --no-install-recommends libpq-dev \ 
    && docker-php-ext-install mysqli pdo_pgsql pdo_mysql 

そして、私のドッキングウィンドウ-composer.yml

phpfpm: 
    build: 
     context: ./php-fpm 
     dockerfile: Dockerfile 
    container_name: test-php-fpm 
    links: 
     - mysql 
    volumes: 
     - ./html:/usr/share/nginx/html 
関連する問題