将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-installdocker-php-ext-enable命令工具(请参阅PHP镜像文档中的“如何安装更多PHP扩展”部分)。