Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将docker-compose.yml中的包安装到docker容器中_Php_Postgresql_Symfony_Docker_Nginx - Fatal编程技术网

Php 将docker-compose.yml中的包安装到docker容器中

Php 将docker-compose.yml中的包安装到docker容器中,php,postgresql,symfony,docker,nginx,Php,Postgresql,Symfony,Docker,Nginx,我是docker和docker compose的初学者,我需要你的帮助 我正在使用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 link

我是docker和docker compose的初学者,我需要你的帮助

我正在使用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
现在,我想将php7.2-intl安装到我的php容器中。因此,我想执行如下操作:

$ 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文件。

要获得具有intl扩展名的PHP docker容器,需要扩展官方PHP映像

为此,请在
docker compose.yml
中声明对PHP图像使用您自己的
Dockerfile

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

    # Add this one instead
    build: './docker/php'
    # ...
然后,将以下
Dockerfile
文件添加到
docker/php
文件夹:

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.1.x”),而不是您用
    PHP:7-fpm
    定义的更通用的“7.x”
  • 我更喜欢使用php官方映像提供的
    docker php ext安装
    docker php ext启用
    命令实用程序(请参阅中的“如何安装更多php扩展”一节)

为您的php映像使用Dockerfile,然后简单地将
构建:。
替换
映像
非常感谢您的回答,您真的帮了大忙,特别是在使用docker compose的Dockerfile时。