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