Dockerfile 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. FROM php:7.4-fpm AS crmeb_php
  2. WORKDIR "/var/www"
  3. # 1. 替换国内 Debian 镜像源(加速依赖下载)
  4. RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
  5. sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list
  6. # 2. 安装所有依赖(包括编译 pcntl 所需的工具链,语法正确!)
  7. RUN apt-get update && \
  8. apt-get -y --no-install-recommends install \
  9. # 编译 pcntl 必需的工具链(正确添加到 apt-get install 列表中)
  10. gcc \
  11. make \
  12. autoconf \
  13. libc-dev \
  14. procps \
  15. # 其他扩展依赖(原有)
  16. libfreetype6-dev \
  17. libjpeg62-turbo-dev \
  18. libpng-dev \
  19. libzip-dev && \
  20. # 3. 编译安装 pcntl 扩展(显式启用,避免隐式失败)
  21. docker-php-ext-configure pcntl --enable-pcntl && \
  22. docker-php-ext-install pcntl && \
  23. docker-php-ext-install mysqli pdo pdo_mysql && \
  24. # 4. 安装其他业务扩展
  25. docker-php-ext-configure gd --with-freetype --with-jpeg && \
  26. docker-php-ext-install -j$(nproc) bcmath mysqli gd zip && \
  27. # 5. 安装 redis 扩展
  28. pecl install redis-5.3.7 && \
  29. docker-php-ext-enable redis && \
  30. # 6. 清理缓存,减少镜像体积
  31. apt-get clean && \
  32. apt-get autoremove -y && \
  33. rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*