Dockerfile
· 1.2 KiB · Docker
Ham
FROM php:8.2-apache
# 1. 更新 apt-get 並安裝相依套件
# 將所有 apt-get 操作合併,並在最後清理,以減小 Image 體積
RUN apt-get update && apt-get install -y --no-install-recommends \
libfreetype6-dev \
libjpeg62-turbo-dev \
libjpeg-dev \
libpng-dev \
libgmp-dev \
libxml2-dev \
libcurl4-gnutls-dev \
libmariadb-dev-compat \
libmariadb-dev \
&& rm -rf /var/lib/apt/lists/*
# 2. 配置並安裝 PHP 擴充功能
# 將多個 docker-php-ext-install 合併執行
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-configure gmp \
&& docker-php-ext-install -j$(nproc) gd exif gmp mysqli pdo_mysql
# 3. 安裝 XML-RPC 擴展 (透過 PECL)
RUN pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 \
&& docker-php-ext-enable xmlrpc
# 4. 複製 php.ini 設定檔
#修正:官方 Image 的設定檔路徑應為 /usr/local/etc/php/php.ini
# 注意:請確保你的本地 php.ini 檔案中,沒有指定錯誤的 extension_dir
COPY php.ini /usr/local/etc/php/php.ini
# 5. 設定工作目錄
WORKDIR /var/www/html
# 6. 啟用 Apache 的 rewrite 模組 (通常 Web 專案都需要)
RUN a2enmod rewrite
| 1 | FROM php:8.2-apache |
| 2 | |
| 3 | # 1. 更新 apt-get 並安裝相依套件 |
| 4 | # 將所有 apt-get 操作合併,並在最後清理,以減小 Image 體積 |
| 5 | RUN apt-get update && apt-get install -y --no-install-recommends \ |
| 6 | libfreetype6-dev \ |
| 7 | libjpeg62-turbo-dev \ |
| 8 | libjpeg-dev \ |
| 9 | libpng-dev \ |
| 10 | libgmp-dev \ |
| 11 | libxml2-dev \ |
| 12 | libcurl4-gnutls-dev \ |
| 13 | libmariadb-dev-compat \ |
| 14 | libmariadb-dev \ |
| 15 | && rm -rf /var/lib/apt/lists/* |
| 16 | |
| 17 | # 2. 配置並安裝 PHP 擴充功能 |
| 18 | # 將多個 docker-php-ext-install 合併執行 |
| 19 | RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ |
| 20 | && docker-php-ext-configure gmp \ |
| 21 | && docker-php-ext-install -j$(nproc) gd exif gmp mysqli pdo_mysql |
| 22 | |
| 23 | # 3. 安裝 XML-RPC 擴展 (透過 PECL) |
| 24 | RUN pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 \ |
| 25 | && docker-php-ext-enable xmlrpc |
| 26 | |
| 27 | # 4. 複製 php.ini 設定檔 |
| 28 | #修正:官方 Image 的設定檔路徑應為 /usr/local/etc/php/php.ini |
| 29 | # 注意:請確保你的本地 php.ini 檔案中,沒有指定錯誤的 extension_dir |
| 30 | COPY php.ini /usr/local/etc/php/php.ini |
| 31 | |
| 32 | # 5. 設定工作目錄 |
| 33 | WORKDIR /var/www/html |
| 34 | |
| 35 | # 6. 啟用 Apache 的 rewrite 模組 (通常 Web 專案都需要) |
| 36 | RUN a2enmod rewrite |