FROM php:8.2-fpm-bookworm RUN rm -rf /etc/apt/sources.list.d/* \ && echo "deb http://mirrors.ustc.edu.cn/debian/ bookworm main contrib non-free non-free-firmware" > /etc/apt/sources.list \ && echo "deb http://mirrors.ustc.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware" >> /etc/apt/sources.list \ && echo "deb http://mirrors.ustc.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware" >> /etc/apt/sources.list RUN apt-get update # 安装nginx RUN apt-get install -y nginx ADD --chmod=0755 https://nexus.hl7.top:1243/repository/github-raw-proxy/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ # 配置代理 RUN sed -i 's|aomedia.googlesource.com|nexus.hl7.top:1243/repository/raw-aomedia.googlesource.com|g' /usr/local/bin/install-php-extensions RUN sed -i 's|chromium.googlesource.com|nexus.hl7.top:1243/repository/raw-chromium.googlesource.com|g' /usr/local/bin/install-php-extensions RUN sed -i 's|https://github.com|https://nexus.hl7.top:1243/repository/github-raw-proxy|g' /usr/local/bin/install-php-extensions RUN install-php-extensions pdo_mysql RUN install-php-extensions gd RUN install-php-extensions fileinfo RUN install-php-extensions opcache RUN install-php-extensions redis RUN install-php-extensions event RUN install-php-extensions imagick RUN install-php-extensions zip RUN install-php-extensions pcntl # 清理默认 Nginx 配置 RUN rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default # 安装其他需要的依赖 # RUN apt-get install -y ffmpeg # RUN apt-get install -y libreoffice # RUN apt-get install -y redis-server # RUN apt-get install -y git # 设置工作目录 WORKDIR /var/www/html # 安装 Composer COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer RUN chmod +x /usr/local/bin/composer RUN composer config -g repos.packagist composer https://nexus.hl7.top:1243/repository/composer-proxy/ # 设置工作目录 WORKDIR /var/www/html # 预先拷贝 composer 文件并安装依赖,利用 Docker 缓存 COPY composer.json composer.lock /var/www/html/ RUN composer install --no-dev --no-interaction --no-scripts --no-autoloader # 将当前目录下的文件拷贝到工作目录 COPY . /var/www/html # 生成自动加载文件 RUN composer dump-autoload --optimize --no-dev --classmap-authoritative # 内部安装compsoer并安装依赖,如果不需要可以注释掉 # RUN install-php-extensions @composer VOLUME /var/www/html/runtime VOLUME /var/www/html/public/storage VOLUME /var/www/html/public/build VOLUME /var/www/html/storage # 挂载主目录,也可以选择直接挂载主目录,可以把上面的几个指定的目录删掉 # VOLUME ["/var/www/html"] # 暴露 Nginx 端口 EXPOSE 8000 RUN chmod +x /var/www/html/source/docker/run.sh # 启动 Nginx PHP 然后阻塞 ENTRYPOINT ["/bin/bash", "/var/www/html/source/docker/run.sh"] CMD ["server"]