diff --git a/Dockerfile b/Dockerfile index 5a966a7..74a0a3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ # Which versions? -ARG PHP_MINOR_VERSION=8.4 -ARG PHP_VERSION=${PHP_MINOR_VERSION}.19 +ARG PHP_MINOR_VERSION=8.5 +ARG PHP_VERSION=${PHP_MINOR_VERSION}.4 +ARG PDO_SQLSRV_EXT_VERSION=5.13.0 ARG REDIS_EXT_VERSION=6.3.0 ARG IMAGICK_EXT_VERSION=3.8.1 ARG PCOV_EXT_VERSION=1.0.12 @@ -13,6 +14,7 @@ ARG COMPOSER_VERSION=2.9.5 FROM --platform=linux/amd64 heroku/heroku:24-build AS stage-amd64 ARG PHP_MINOR_VERSION ARG PHP_VERSION +ARG PDO_SQLSRV_EXT_VERSION ARG REDIS_EXT_VERSION ARG IMAGICK_EXT_VERSION ARG PCOV_EXT_VERSION @@ -37,6 +39,7 @@ RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1 RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-amd64-stable/ext-redis-${REDIS_EXT_VERSION}_php-${PHP_MINOR_VERSION}.tar.gz | tar xz -C /app/.heroku/php RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-amd64-stable/ext-imagick-${IMAGICK_EXT_VERSION}_php-${PHP_MINOR_VERSION}.tar.gz | tar xz -C /app/.heroku/php RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-amd64-stable/ext-pcov-${PCOV_EXT_VERSION}_php-${PHP_MINOR_VERSION}.tar.gz | tar xz -C /app/.heroku/php +RUN curl --silent --location https://robuust-heroku-php.s3.eu-west-1.amazonaws.com/dist-heroku-24-develop/extensions/no-debug-non-zts-20250925/pdo_sqlsrv-$PDO_SQLSRV_EXT_VERSION-x86.tar.gz | tar xz -C /app/.heroku/php # Install Composer RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-amd64-stable/composer-${COMPOSER_VERSION}.tar.gz | tar xz -C /app/.heroku/php @@ -48,6 +51,7 @@ RUN curl --silent --location https://nodejs.org/dist/v${NODE_VERSION}/node-v${NO FROM --platform=linux/arm64 heroku/heroku:24-build AS stage-arm64 ARG PHP_MINOR_VERSION ARG PHP_VERSION +ARG PDO_SQLSRV_EXT_VERSION ARG REDIS_EXT_VERSION ARG IMAGICK_EXT_VERSION ARG PCOV_EXT_VERSION @@ -72,6 +76,7 @@ RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1 RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-arm64-stable/ext-redis-${REDIS_EXT_VERSION}_php-${PHP_MINOR_VERSION}.tar.gz | tar xz -C /app/.heroku/php RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-arm64-stable/ext-imagick-${IMAGICK_EXT_VERSION}_php-${PHP_MINOR_VERSION}.tar.gz | tar xz -C /app/.heroku/php RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-arm64-stable/ext-pcov-${PCOV_EXT_VERSION}_php-${PHP_MINOR_VERSION}.tar.gz | tar xz -C /app/.heroku/php +RUN curl --silent --location https://robuust-heroku-php.s3.eu-west-1.amazonaws.com/dist-heroku-24-develop/extensions/no-debug-non-zts-20250925/pdo_sqlsrv-$PDO_SQLSRV_EXT_VERSION.tar.gz | tar xz -C /app/.heroku/php # Install Composer RUN curl --silent --location https://heroku-buildpack-php.s3.dualstack.us-east-1.amazonaws.com/dist-heroku-24-arm64-stable/composer-${COMPOSER_VERSION}.tar.gz | tar xz -C /app/.heroku/php @@ -93,7 +98,13 @@ ENV PORT=3000 ENV WEB_CONCURRENCY=64 # Locate our binaries -ENV PATH=/app/.heroku/php/bin:/app/.heroku/php/sbin:/app/.heroku/node/bin/:/app/user/node_modules/.bin:/app/user/vendor/bin:/app/user/:$PATH +ENV PATH=/app/.heroku/php/bin:/app/.heroku/php/sbin:/app/.heroku/node/bin/:/app/user/node_modules/.bin:/app/user/vendor/bin:/app/user:/opt/mssql-tools18/bin:$PATH + +# Install Microsoft ODBC driver, MSSQL tools and unixODBC development headers +RUN curl --insecure https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ + && curl --insecure https://packages.microsoft.com/config/ubuntu/24.04/prod.list | tee /etc/apt/sources.list.d/mssql-release.list \ + && apt-get update -qqy \ + && ACCEPT_EULA=Y apt-get -qqy install msodbcsql18 mssql-tools18 unixodbc-dev # Apache Config RUN curl --silent --location https://raw.githubusercontent.com/heroku/heroku-buildpack-php/master/support/build/_conf/apache2/httpd.conf > /app/.heroku/php/etc/apache2/httpd.conf @@ -125,6 +136,7 @@ RUN echo "\n\ extension=intl.so \n\ extension=mbstring.so \n\ extension=pcntl.so \n\ + extension=pdo_sqlsrv.so \n\ extension=pcov.so \n\ extension=redis.so \n\ extension=imagick.so \n\ diff --git a/README.md b/README.md index dcc95c7..83118c9 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # Docker image for Heroku PHP -Usage: `FROM ghcr.io/robuust/heroku-php` +Usage: `FROM ghcr.io/robuust/heroku-php:pdo_sqlsrv` # Specifications * Heroku 24 * Apache * Nginx -* PHP 8.4.x with Redis, Imagick and PCov +* PHP 8.5.x with Redis, Imagick, PCov and PDO SQL Server * Composer 2 * Node 24.x * Yarn 4.x diff --git a/packages.json b/packages.json new file mode 100644 index 0000000..d6fdc06 --- /dev/null +++ b/packages.json @@ -0,0 +1,42 @@ +{ + "packages": { + "heroku-sys/ext-pdo_sqlsrv": [ + { + "conflict": {}, + "dist": { + "type": "heroku-sys-tar", + "url": "https://robuust-heroku-php.s3.eu-west-1.amazonaws.com/dist-heroku-24-develop/extensions/no-debug-non-zts-20250925/pdo_sqlsrv-5.13.0-x86.tar.gz" + }, + "name": "heroku-sys/ext-pdo_sqlsrv", + "provide": {}, + "replace": {}, + "require": { + "heroku-sys/heroku": "^24.0.0", + "heroku-sys/php": "8.5.*", + "heroku/installer-plugin": "^1.2.0" + }, + "time": "2026-03-09 11:52:30", + "type": "heroku-sys-php-extension", + "version": "5.13.0" + }, + { + "conflict": {}, + "dist": { + "type": "heroku-sys-tar", + "url": "https://robuust-heroku-php.s3.eu-west-1.amazonaws.com/dist-heroku-24-develop/extensions/no-debug-non-zts-20240924/pdo_sqlsrv-5.13.0-x86.tar.gz" + }, + "name": "heroku-sys/ext-pdo_sqlsrv", + "provide": {}, + "replace": {}, + "require": { + "heroku-sys/heroku": "^24.0.0", + "heroku-sys/php": "8.4.*", + "heroku/installer-plugin": "^1.2.0" + }, + "time": "2026-03-09 11:52:30", + "type": "heroku-sys-php-extension", + "version": "5.13.0" + } + ] + } +}