FROM php:8.2-apache SHELL ["/bin/bash", "-o", "pipefail", "-c"] # 1. 安裝系統相依套件 RUN apt-get update && apt-get install -y --no-install-recommends \ gnupg2 \ curl \ lsb-release \ ca-certificates \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ libgmp-dev \ libxml2-dev \ libcurl4-gnutls-dev \ libmariadb-dev-compat \ libmariadb-dev \ libpq-dev \ libsqlite3-dev \ unixodbc-dev \ libmemcached-dev \ zlib1g-dev \ && rm -rf /var/lib/apt/lists/* # 2. 安裝微軟 ODBC Driver for SQL Server RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \ | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ && echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" \ > /etc/apt/sources.list.d/mssql-release.list \ && apt-get update \ && ACCEPT_EULA=Y apt-get install -y --no-install-recommends \ msodbcsql18 \ mssql-tools18 \ && rm -rf /var/lib/apt/lists/* ENV PATH="$PATH:/opt/mssql-tools18/bin" # 3. 安裝 PHP 內建擴充(加上 opcache) 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 pdo_pgsql pgsql pdo_sqlite opcache # 4. 安裝 PECL 擴充(加上 memcached) RUN pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 \ && pecl install sqlsrv pdo_sqlsrv \ && pecl install memcached \ && docker-php-ext-enable xmlrpc sqlsrv pdo_sqlsrv memcached # SQL Server TLS workaround RUN echo 'openssl_conf = default_conf' > /etc/ssl/openssl_custom.cnf \ && echo '[default_conf]' >> /etc/ssl/openssl_custom.cnf \ && echo 'ssl_conf = ssl_sect' >> /etc/ssl/openssl_custom.cnf \ && echo '[ssl_sect]' >> /etc/ssl/openssl_custom.cnf \ && echo 'system_default = system_default_sect' >> /etc/ssl/openssl_custom.cnf \ && echo '[system_default_sect]' >> /etc/ssl/openssl_custom.cnf \ && echo 'CipherString = DEFAULT@SECLEVEL=0' >> /etc/ssl/openssl_custom.cnf \ && echo 'Options = UnsafeLegacyRenegotiation' >> /etc/ssl/openssl_custom.cnf ENV OPENSSL_CONF=/etc/ssl/openssl_custom.cnf WORKDIR /var/www/html RUN a2enmod rewrite