无法在Docker容器中安装依赖于GD PHP扩展的composer软件包

时间:2020-06-18 20:46:46

标签: php laravel docker docker-compose gd

我正在尝试为我的应用程序创建一个dockerized网络。使用当前的docker-compose.yml配置,我可以启动并运行一切。我面临的问题是当我尝试安装依赖于GD扩展的作曲家软件包时。谁能告诉我我的PHP Dockerfile或我的docker-compose网络设置有什么问题吗?

PHP Dockerfile

FROM php:7.3-alpine

# Install php extensions
RUN apk update && apk add --no-cache postgresql-dev && apk add libzip-dev freetype-dev libjpeg-turbo-dev libpng-dev

RUN docker-php-ext-install pdo pdo_pgsql mbstring zip

RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install gd

# Setup working directory
WORKDIR /var/www/html

Docker组成PHP网络块

  php:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ${PROJECT_NAME}-php
    volumes:
      - ./src:/var/www/html
    ports:
      - "9001:9000"
    networks:
      - testNetwork

提前谢谢!

续:当我将壳装入运行中的Docker容器时,您可以看到已加载的docker-php-extensions。

/usr/local/etc/php/conf.d # ls
docker-php-ext-gd.ini         docker-php-ext-pdo_pgsql.ini  docker-php-ext-sodium.ini     docker-php-ext-zip.ini
/usr/local/etc/php/conf.d # 

2 个答案:

答案 0 :(得分:0)

最简单的方法是在github上this个很棒的项目,轻松替换:


COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr/bin/

RUN install-php-extensions gd

与您的Dockerfile的php扩展安装部分相同。

编辑:

您还可以像粘贴一样容易地在任何docker容器上安装composer:

COPY --from=composer /usr/bin/composer /usr/bin/composer

答案 1 :(得分:0)

RUN apt-get install -y openssl zip unzip git libonig-dev  libxml2-dev libpng-dev libjpeg-dev libfreetype6-dev libonig-dev curl mcrypt gnupg build-essential software-properties-common wget vim libwebp-dev

RUN  docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-webp-dir=/usr/include/  --with-jpeg-dir=/usr/include

RUN docker-php-ext-install mysqli mbstring pdo pdo_mysql tokenizer xml bcmath opcache pcntl intl soap exif gd

尝试使用上面的代码片段,对于gd,有php-ext-configure install并安装了一些liblib之类的库,如libpng-dev

希望对您有帮助