将docker-compose.yml中的软件包安装到docker容器中
我是docker工和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
现在,我想安装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映像声明使用您自己docker-compose.yml
:
services: php: # Remove this line # image: php:7-fpm # Add this one instead build: './docker/php' # ...
然后,将以下Dockerfile
文件添加到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扩展名docker-compose build
的PHP容器。
一些注意事项:
- 我更喜欢明确地告诉我使用哪个PHP版本(这里是“7.1.x”),而不是使用
php:7-fpm
定义的更通用的“7.x”。 - 我更喜欢使用PHP官方镜像提供的
docker-php-ext-install
和docker-php-ext-enable
命令工具(请参阅PHP镜像文档中的“如何安装更多PHP扩展”部分)。