最后活跃于 2 months ago

修订 1494c335a370c2db88646b9eae6f6396e4d1de15

Dockerfile 原始文件
1FROM php:8.2-apache
2
3SHELL ["/bin/bash", "-o", "pipefail", "-c"]
4
5# 1. 安裝系統相依套件
6RUN apt-get update && apt-get install -y --no-install-recommends \
7 gnupg2 \
8 curl \
9 lsb-release \
10 ca-certificates \
11 libfreetype6-dev \
12 libjpeg62-turbo-dev \
13 libpng-dev \
14 libgmp-dev \
15 libxml2-dev \
16 libcurl4-gnutls-dev \
17 libmariadb-dev-compat \
18 libmariadb-dev \
19 libpq-dev \
20 libsqlite3-dev \
21 unixodbc-dev \
22 libmemcached-dev \
23 zlib1g-dev \
24 && rm -rf /var/lib/apt/lists/*
25
26# 2. 安裝微軟 ODBC Driver for SQL Server
27RUN curl -fsSL https://packages.microsoft.com/keys/microsoft.asc \
28 | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \
29 && echo "deb [arch=amd64,arm64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" \
30 > /etc/apt/sources.list.d/mssql-release.list \
31 && apt-get update \
32 && ACCEPT_EULA=Y apt-get install -y --no-install-recommends \
33 msodbcsql18 \
34 mssql-tools18 \
35 && rm -rf /var/lib/apt/lists/*
36
37ENV PATH="$PATH:/opt/mssql-tools18/bin"
38
39# 3. 安裝 PHP 內建擴充(加上 opcache)
40RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
41 && docker-php-ext-configure gmp \
42 && docker-php-ext-install -j"$(nproc)" \
43 gd exif gmp mysqli pdo_mysql pdo_pgsql pgsql pdo_sqlite opcache
44
45# 4. 安裝 PECL 擴充(加上 memcached)
46RUN pecl install channel://pecl.php.net/xmlrpc-1.0.0RC3 \
47 && pecl install sqlsrv pdo_sqlsrv \
48 && pecl install memcached \
49 && docker-php-ext-enable xmlrpc sqlsrv pdo_sqlsrv memcached
50
51# SQL Server TLS workaround
52RUN echo 'openssl_conf = default_conf' > /etc/ssl/openssl_custom.cnf \
53 && echo '[default_conf]' >> /etc/ssl/openssl_custom.cnf \
54 && echo 'ssl_conf = ssl_sect' >> /etc/ssl/openssl_custom.cnf \
55 && echo '[ssl_sect]' >> /etc/ssl/openssl_custom.cnf \
56 && echo 'system_default = system_default_sect' >> /etc/ssl/openssl_custom.cnf \
57 && echo '[system_default_sect]' >> /etc/ssl/openssl_custom.cnf \
58 && echo 'CipherString = DEFAULT@SECLEVEL=0' >> /etc/ssl/openssl_custom.cnf \
59 && echo 'Options = UnsafeLegacyRenegotiation' >> /etc/ssl/openssl_custom.cnf
60
61ENV OPENSSL_CONF=/etc/ssl/openssl_custom.cnf
62
63WORKDIR /var/www/html
64RUN a2enmod rewrite
65