2017-09-25 31 views
2

私はドッカーとドッカーの作成者の初心者です。私はあなたの助けが必要です。docker-compose.ymlからdockerコンテナにパッケージをインストール

私は、docker-composeを使用してPHP-NGINX-PostgresSQLのsymfony開発環境を作っています。

ここにある:

web: 
    image: nginx:1.13.5 
    ports: 
     - "80:80" 
    volumes: 
     - ./html:/html 
     - ./site.conf:/etc/nginx/conf.d/default.conf 
    links: 
     - php 
php: 
    image: php:7-fpm 
    volumes: 
     - ./html:/html 
    links: 
     - postgres 
postgres: 
    image: postgres:9.6.5 
    ports: 
     - "5432:5432" 
    environment: 
     POSTGRES_PASSWORD: postgres 

さて、私は私のPHPの容器にphp7.2-国際空港をインストールしたいと思います。だから私は次のようなものを実行したい:

$ sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php 
$ sudo apt-get update 
$ sudo apt-get install php7.2-intl 

私を助けてくれますか?私は本当に立ち往生していますし、Dockerfileファイルもありません。docker-compose.ymlファイルです。

+3

あなたのPHPイメージにDockerfileを使用して、単純に 'build:.'を' image'の場所に入れてください。 –

答えて

5

int拡張子を持つPHPドッカーコンテナを取得するには、公式のPHPイメージを拡張する必要があります。そうするには

docker-compose.ymlでPHPのイメージのための独自のDockerfileの使用を宣言します。そして、

services: 
    php: 
    # Remove this line 
    # image: php:7-fpm 

    # Add this one instead 
    build: './docker/php' 
    # ... 

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

FROM php:7.1-fpm 

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

あなたはすることができますdocker-compose buildを実行して、Intl拡張機能を使用してPHPコンテナを作成します。

いくつかの注意事項:

  • 私は明示的ではなく、あなたがphp:7-fpmで定義された、より一般的な「7.xの」よりも、私が使用しているPHPのバージョン(ここでは「7.1」)を伝えることを好みます。
  • 私は、PHP公式画像(PHP image documentationの「PHP拡張モジュールのインストール方法」を参照)によって提供されるdocker-php-ext-installおよびdocker-php-ext-enableコマンドユーティリティを使用することをお勧めしました。
+0

本当に助けてくれました。特にdocker-composeでdockerfileを使用しています。 – TheMackou

関連する問題