You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下PHP GD Library缺失,如何安装?

如何在现有Docker Compose环境的PHP-FPM容器中安装GD库?

环境配置

当前使用的docker-compose.yaml内容如下:

version: "3.9"

services:
    web:
        image: nginx:latest
        ports:
            - "8080:80"
        volumes:
            - ./src:/var/www/html
            - ./default.conf:/etc/nginx/conf.d/default.conf
        links:
            - php-fpm
    php-fpm:
        image: php:8-fpm
        volumes:
            - ./src:/var/www/html
    db:
        image: 'jc21/mariadb-aria:latest'
        restart: unless-stopped
        environment:
          MYSQL_ROOT_PASSWORD: 'secretpassword.'
          MYSQL_DATABASE: 'secretdb'
          MYSQL_USER: 'secretuser'
          MYSQL_PASSWORD: 'secretpassword.'
        volumes:
          - ./data/mysql:/var/lib/mysql
    phpmyadmin:
        image: lscr.io/linuxserver/phpmyadmin:latest
        container_name: pma
        links:
              - db
        environment:
              PMA_ARBITRARY: 0
              PMA_HOST: db
              PMA_PORT: 3306
        restart: always
        ports:
              - 8085:80

解决方案

方式一:临时安装(容器重启后失效)

  • 先查找php-fpm容器的名称或ID:
    docker ps
    
    容器名称通常为{项目目录名}_php-fpm_1格式
  • 进入容器内部:
    docker exec -it <容器名称/ID> bash
    
  • 在容器内执行GD库安装命令:
    apt-get update && apt-get install -y libpng-dev libjpeg-dev libfreetype6-dev
    docker-php-ext-configure gd --with-freetype --with-jpeg
    docker-php-ext-install gd
    
  • 退出容器后重启php-fpm服务:
    docker restart <容器名称/ID>
    

方式二:构建自定义镜像(持久化生效)

如果需要GD库在容器重启后依然保留,推荐使用自定义镜像:

  1. 在项目根目录创建Dockerfile文件,内容如下:
    FROM php:8-fpm
    
    RUN apt-get update && apt-get install -y \
        libpng-dev \
        libjpeg-dev \
        libfreetype6-dev \
        && rm -rf /var/lib/apt/lists/* \
        && docker-php-ext-configure gd --with-freetype --with-jpeg \
        && docker-php-ext-install gd
    
  2. 修改docker-compose.yaml中的php-fpm服务配置,替换image为build:
    php-fpm:
        build: .
        volumes:
            - ./src:/var/www/html
    
  3. 重新构建并启动容器:
    docker-compose up -d --build
    

内容的提问来源于stack exchange,提问作者Maddin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 17:25:20