web-dev-qa-db-ja.com

PHP Docker Composeを使用した拡張機能の追加

Nginxとphpを含むdockerでローカル開発環境をセットアップしようとしています。私は このチュートリアル から始めて、サーバーが機能しています。私のプロジェクトでは、いくつかのPHP拡張機能をインストールする必要がありますが、この設定を適用してそれらを含める方法を理解するのが困難です。

画像のドキュメントには、私が行ったdockerfileに配置するように書かれています。しかし、それは私にエラーを与えます:

エラー:構成ファイルは無効です。理由:サービスphpにイメージと代替Dockerfileの両方があります。サービスは、イメージ用に構築することも、既存のイメージを使用することもできます。両方ではありません。

俺の docker-compose.yml

web:
  image: nginx:latest
  ports:
    - "80:80"
  volumes:
  - ./code:/code
  - ./site.conf:/etc/nginx/conf.d/site.conf
  links:
    - php
php:
  dockerfile: extensions
  image: php:7-fpm
  volumes:
    - ./code:/code

私のextensionsファイル

RUN docker-php-ext-install Zip
RUN docker-php-ext-install Gd
RUN docker-php-ext-enable Zip
RUN docker-php-ext-enable Gd

明らかに私はこれについて間違っています。このイメージに拡張機能をインストールする方法はありますか、それとも自分で作成する必要がありますか? Docker for Windowsを使用しています。

7
Jacobm001

extensionsファイルで、これを先頭に追加します:FROM php:7-fpm

そしてimage: php:7-fpmをdocker-composeファイルから削除します

3
JemoeE

これは私のコードです。私のサーバーですでに実行されています。

web:
  image: nginx:latest
  ports:
    - "80:80"
  volumes:
  - ./code:/code
  - ./site.conf:/etc/nginx/conf.d/site.conf
  links:
    - php
php:
  #remove this
  #dockerfile: extensions
  #image: php:7-fpm
  #change with build ...
  build: './docker/php'
  volumes:
    - ./code:/code

次に、Dockerfileファイルをdocker/phpフォルダに追加します。

FROM php:7-fpm

RUN apt-get update && apt-get install -y \
        libicu-dev \
    && docker-php-ext-install \
        intl \
    && docker-php-ext-enable \
        intl

これで、docker-compose内でDockerfileを実行できます。

0
nur zazin