我试图将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-development
和php.ini-production
https://docs.docker.com/samples/library/php/