簡體   English   中英

將docker-compose.yml中的軟件包安裝到docker容器中

[英]install packages from docker-compose.yml into docker container

我是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文件添加到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:7-fpm
  • 我更喜歡使用PHP官方映像提供的docker-php-ext-installdocker-php-ext-enable命令實用程序(請參閱PHP映像文檔中的“如何安裝更多PHP擴展”部分)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM