Dockerfile 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. FROM php:7.2-fpm
  2. LABEL maintainer="new_sdk"
  3. # 安装依赖
  4. RUN apt-get update && apt-get install -y --no-install-recommends \
  5. nginx \
  6. supervisor \
  7. libfreetype6-dev \
  8. libjpeg62-turbo-dev \
  9. libpng-dev \
  10. libxml2-dev \
  11. libzip-dev \
  12. zip \
  13. unzip \
  14. git \
  15. && rm -rf /var/lib/apt/lists/*
  16. # 安装 PHP 扩展
  17. RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
  18. && docker-php-ext-install -j$(nproc) \
  19. gd \
  20. pdo \
  21. pdo_mysql \
  22. mysqli \
  23. xml \
  24. zip \
  25. bcmath \
  26. mbstring \
  27. opcache \
  28. redis
  29. # 安装 Composer
  30. COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
  31. # PHP 配置
  32. RUN cp "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
  33. RUN sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 50M/' "$PHP_INI_DIR/php.ini" \
  34. && sed -i 's/post_max_size = 8M/post_max_size = 55M/' "$PHP_INI_DIR/php.ini" \
  35. && sed -i 's/memory_limit = 128M/memory_limit = 256M/' "$PHP_INI_DIR/php.ini" \
  36. && sed -i 's/max_execution_time = 30/max_execution_time = 300/' "$PHP_INI_DIR/php.ini" \
  37. && sed -i 's/;date.timezone =/date.timezone = Asia\/Shanghai/' "$PHP_INI_DIR/php.ini"
  38. # 目录权限
  39. RUN chown -R www-data:www-data /var/www/html
  40. # Supervisor 管理进程
  41. RUN mkdir -p /etc/supervisor/conf.d
  42. COPY supervisor.conf /etc/supervisor/conf.d/supervisord.conf
  43. EXPOSE 80
  44. CMD ["/usr/bin/supervisord", "-n", "-c", "/etc/supervisor/conf.d/supervisord.conf"]