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を使用しています。
extensions
ファイルで、これを先頭に追加します:FROM php:7-fpm
そしてimage: php:7-fpm
をdocker-composeファイルから削除します
これは私のコードです。私のサーバーですでに実行されています。
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を実行できます。