@@ -33,11 +33,25 @@ RUN set -e && \
3333 autoconf g++ make bash sed ghostscript mysql-client imagemagick shadow msmtp unzip linux-headers \
3434 freetype-dev icu-dev openssl-dev imagemagick-dev libjpeg-turbo-dev libwebp-dev libpng-dev libzip-dev libssh2-dev git lz4-dev libxpm-dev
3535
36+ # Install the Microsoft ODBC driver for SQL Server (Linux)
37+ RUN apk add --no-cache ca-certificates wget gnupg && \
38+ ARCH=$(uname -m) && \
39+ case $ARCH in x86_64) ARCH="amd64" ;; aarch64|arm64) ARCH="arm64" ;; *) echo "Unsupported architecture: $ARCH" && exit 1;; esac && \
40+ wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --import - && \
41+ wget "https://download.microsoft.com/download/9dcab408-e0d4-4571-a81a-5a0951e3445f/msodbcsql18_18.6.1.1-1_${ARCH}.apk" && \
42+ wget "https://download.microsoft.com/download/9dcab408-e0d4-4571-a81a-5a0951e3445f/msodbcsql18_18.6.1.1-1_${ARCH}.sig" && \
43+ wget "https://download.microsoft.com/download/b60bb8b6-d398-4819-9950-2e30cf725fb0/mssql-tools18_18.6.1.1-1_${ARCH}.apk" && \
44+ wget "https://download.microsoft.com/download/b60bb8b6-d398-4819-9950-2e30cf725fb0/mssql-tools18_18.6.1.1-1_${ARCH}.sig" && \
45+ gpg --verify msodbcsql18_18.6.1.1-1_${ARCH}.sig msodbcsql18_18.6.1.1-1_${ARCH}.apk && \
46+ gpg --verify mssql-tools18_18.6.1.1-1_${ARCH}.sig mssql-tools18_18.6.1.1-1_${ARCH}.apk && \
47+ apk add --allow-untrusted msodbcsql18_18.6.1.1-1_${ARCH}.apk mssql-tools18_18.6.1.1-1_${ARCH}.apk && \
48+ rm -f msodbcsql18_18.6.1.1-1_${ARCH}.apk msodbcsql18_18.6.1.1-1_${ARCH}.sig mssql-tools18_18.6.1.1-1_${ARCH}.apk mssql-tools18_18.6.1.1-1_${ARCH}.sig
49+
3650# Install PHP extensions using php-extension-installer
3751RUN apk add --no-cache --virtual .phpize-deps $PHPIZE_DEPS \
3852 && curl -L -o /usr/local/bin/install-php-extensions https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions \
3953 && chmod +x /usr/local/bin/install-php-extensions \
40- && install-php-extensions bcmath curl dom exif fileinfo gd hash igbinary intl json mbstring mysqli opcache openssl pcre pdo_mysql pdo_sqlite redis shmop simplexml sodium soap sockets ssh2 tokenizer xml xmlreader xmlwriter zip zlib apcu ftp relay
54+ && install-php-extensions bcmath curl dom exif fileinfo gd hash igbinary intl json mbstring mysqli opcache openssl pcre pdo_mysql pdo_sqlite redis shmop simplexml sodium soap sockets ssh2 tokenizer xml xmlreader xmlwriter zip zlib apcu ftp relay pspell pcntl mongodb ldap imap grpc gmp gettext excimer ev calendar xsl sqlsrv pdo_sqlsrv pdo_pgsql
4155
4256# Install imagick manually for PHP 8.3
4357RUN if [[ "$PHP_VERSION" == "8.3" * ]]; then \
@@ -70,11 +84,12 @@ COPY --from=wpcli_builder /home/www-data/.wp-cli /home/www-data/.wp-cli
7084# Final stage
7185FROM php:${PHP_VERSION}-fpm-alpine
7286
73- # Install runtime dependencies
87+ # Install runtime dependencies (including libraries for PHP extensions)
7488RUN apk add --no-cache \
7589 bash sed ghostscript mysql-client imagemagick shadow msmtp unzip linux-headers \
7690 freetype icu openssl imagemagick libjpeg-turbo libwebp libpng libzip libssh2 git libgomp \
77- libssh2-dev lz4 libavif libxpm lz4-libs && \
91+ libssh2-dev lz4 libavif libxpm lz4-libs \
92+ unixodbc libpq libldap c-client snappy aspell-libs libxslt gmp && \
7893 rm -rf /var/cache/apk/*
7994
8095# Copy built extensions and configs from the builder stage
@@ -83,6 +98,10 @@ COPY --from=builder /usr/local/lib/php/extensions /usr/local/lib/php/extensions
8398COPY --from=builder /usr/local/bin /usr/local/bin
8499COPY --from=builder /home/www-data/.wp-cli /home/www-data/.wp-cli
85100
101+ # Copy Microsoft ODBC driver and tools for SQL Server
102+ COPY --from=builder /opt/microsoft /opt/microsoft
103+ COPY --from=builder /etc/odbcinst.ini /etc/odbcinst.ini
104+
86105# Ensure the entrypoint script is copied and has executable permissions
87106COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
88107RUN chmod +x /usr/local/bin/docker-entrypoint.sh
0 commit comments