Dockerfile 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  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. # 其他扩展依赖(原有)
  15. libfreetype6-dev \
  16. libjpeg62-turbo-dev \
  17. libpng-dev \
  18. libzip-dev && \
  19. # 3. 编译安装 pcntl 扩展(显式启用,避免隐式失败)
  20. docker-php-ext-configure pcntl --enable-pcntl && \
  21. docker-php-ext-install pcntl && \
  22. docker-php-ext-install mysqli pdo pdo_mysql && \
  23. # 4. 安装其他业务扩展
  24. docker-php-ext-configure gd --with-freetype --with-jpeg && \
  25. docker-php-ext-install -j$(nproc) bcmath mysqli gd zip && \
  26. # 5. 安装 redis 扩展
  27. pecl install redis-5.3.7 && \
  28. docker-php-ext-enable redis && \
  29. # 6. 清理缓存,减少镜像体积
  30. apt-get clean && \
  31. apt-get autoremove -y && \
  32. rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*