我是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文件。
答案 0 :(得分:7)
要获得具有intl扩展名的PHP docker容器,您需要扩展官方PHP映像。
为此,请在Dockerfile
中为您的PHP图片声明使用自己的docker-compose.yml
:
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-fpm
定义的更通用的“7.x”。docker-php-ext-install
和docker-php-ext-enable
命令实用程序(请参阅PHP image documentation中的“如何安装更多PHP扩展”部分)。