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

# 使用阿里云镜像源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list \
    && sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip

# 安装PHP扩展
RUN docker-php-ext-install pdo_mysql mysqli mbstring exif pcntl bcmath gd

# 安装Composer
COPY --from=composer:1.10 /usr/bin/composer /usr/bin/composer

# 设置工作目录
WORKDIR /var/www/html

# 创建必要的目录
RUN mkdir -p /var/www/html/app \
    && mkdir -p /var/www/html/config \
    && mkdir -p /var/www/html/public \
    && mkdir -p /var/www/html/route \
    && mkdir -p /var/www/html/vendor \
    && mkdir -p /var/www/html/runtime

# 创建Composer缓存目录并设置权限
RUN mkdir -p /var/www/.composer/cache \
    && chown -R www-data:www-data /var/www/.composer

# 复制项目文件
COPY . .

# 设置目录权限
RUN chown -R www-data:www-data /var/www/html \
    && chmod -R 755 /var/www/html \
    && chmod -R 777 /var/www/html/runtime

# 升级 Composer 到版本 2
RUN composer self-update --2
    # 配置git安全目录
RUN git config --global --add safe.directory /var/www/html

# 切换到www-data用户并安装依赖
USER www-data
RUN composer install --no-dev --optimize-autoloader

# 切换回root用户
USER root

# 暴露端口
EXPOSE 9000

# 启动PHP-FPM
CMD ["php-fpm"] 