# 使用 PHP 7.4 FPM 镜像作为基础镜像
FROM php:7.4-fpm

# 安装 cron、curl 和 vim
RUN apt-get update && apt-get -y install cron curl vim

# 将 crontab 文件复制到容器中
COPY docker_crontab /etc/cron.d/docker_crontab

# 设置 crontab 权限并添加到 cron
RUN chmod 0644 /etc/cron.d/docker_crontab && \
    chown www-data:www-data /etc/cron.d/docker_crontab && \
    crontab /etc/cron.d/docker_crontab

# 创建日志文件并设置权限
RUN touch /var/log/cron.log && \
    chmod 664 /var/log/cron.log && \
    chown www-data:www-data /var/log/cron.log

# 安装系统依赖和 PHP 扩展的依赖项
RUN apt-get update && apt-get install -y \
    zlib1g-dev \
    libzip-dev \
    libpq-dev \
    libfreetype6-dev \
    libjpeg62-turbo-dev \
    libpng-dev \
    libwebp-dev \
    libssl-dev \
    pkg-config \
    libcurl4-openssl-dev \
    && docker-php-ext-install zip \
    && docker-php-ext-install gd \
    && docker-php-ext-install pdo pdo_mysql \
    && docker-php-ext-install pgsql pdo_pgsql \
    && docker-php-ext-install bcmath calendar exif gettext sockets dba mysqli pcntl pdo_mysql shmop sysvmsg sysvsem sysvshm

# 安装 MongoDB 扩展
RUN pecl install mongodb-1.15.0 \
    && docker-php-ext-enable mongodb

# 安装 Redis 扩展
RUN pecl install redis-6.0.2 \
    && docker-php-ext-enable redis

# 清理不必要的文件
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

COPY start.sh /usr/local/bin/start.sh
RUN chmod +x /usr/local/bin/start.sh

RUN chown -R 0775 /var/www/html\
    && chown -R www-data:www-data /var/www/html

CMD ["/usr/local/bin/start.sh"]
