docker安装并启用php扩展


docker install and enable php extension

我试图将Docker用于我的Symfony3项目,我让它运行,但我得到了这个错误:

The LDAP PHP extension is not enabled.

这听起来确实不错,因为我正在为我的项目使用Ldap扩展。我已经尝试使用Dockerfile为我的php映像安装Ldap扩展,它似乎安装了它,但仍然给了我这个错误。

Q1(如何将所需的php扩展安装到我的php映像中。Q2(一旦安装了扩展,我该如何启用它。

docker compose.yml:

web:
    image: nginx:latest
    ports:
        - "80:80"
    volumes:
        - ./site.conf:/etc/nginx/conf.d/site.conf
 project files
    volumes_from:
        - php
    links:
        - php
php:
    image: php:5.6-fpm
    volumes:
        - ./project_code:/var/www/project

Dockerfile:

FROM php:5.6-fpm
RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install php5-ldap -y

您需要在docker-compose.yml中指向包含Dockerfile的目录。然后,它基于这个Dockerfile构建您的个人图像,并在docker compose中根据需要进行链接。

所以你必须修改你的docker-compose.yml。让我们假设你已经将你的Dockerfile存储在与你的docker-compose.yml文件相同的目录中。然后你必须按如下方式更改它:

version: '2'                              # <--
web:
  image: nginx:latest
  ports:
    - "80:80"
  volumes:
    - ./site.conf:/etc/nginx/conf.d/site.conf
 project files
   volumes_from:
     - php
   links:
     - php
php:
  build: .                                # <--
  volumes:
    - ./project_code:/var/www/project

这将按照Dockerfile中的定义构建您的映像(目前您的Dockerfile被您的docker-compose.yml文件忽略(。然后,您必须在Dockerfile中添加如何启用php模块。

如果您没有找到带有php -i | grep php.ini 的php.ini

在docker中,有两个php.ini文件:php.ini-developmentphp.ini-productionhttps://docs.docker.com/samples/library/php/