将docker-compose.yml中的软件包安装到docker容器中

麦克库

我是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文件。

迈克尔·佩林

要获得具有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.1.x”),而不是使用定义的更通用的“ 7.x” php:7-fpm
  • 我更喜欢使用PHP官方映像提供docker-php-ext-installdocker-php-ext-enable命令实用程序(请参阅PHP映像文档中的“如何安装更多PHP扩展”部分)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章