Releases: serversideup/docker-php
v3.0.2
Fixes
- Resolved issue where
SHOW_WELCOME_MESSAGEwas not working
CI/CD
- Improve automated site previews by @jaydrogers in #338
- Change to upload to GHCR for PRs only by @jaydrogers in #340
Full Changelog: v3.0.1...v3.0.2
v3.0.1
🐛 Fixes
- Fixed a number of typos in docs and code (#337)
- Fixed typo in names of:
- Renamed
UNIT_PROCCESSES_IDLE_TIMEOUT→UNIT_PROCESSES_IDLE_TIMEOUT - Renamed
UNIT_PROCCESSES_MAX→UNIT_PROCESSES_MAX - Renamed
UNIT_PROCCESSES_SPARE→UNIT_PROCESSES_SPARE
- Renamed
Full Changelog: v3.0.0...v3.0.1
v3.0.0
🚀 HUGE RELEASE: New Features
We've been busy overhauling our PHP Docker Images to make them more production-ready and easier to use. Here are some of the new features we've added:
Caution
This release has a number of breaking changes (all for the good). If you're still using our Ubuntu-based images, you can continue to use our previous version by using the 2.2.1 release tag (*-v2.2.1). This can help buy you some time for your migration.
- Based on official PHP Images - We're now building an improved developer experience on top of the official PHP Docker images.
- Unprivileged user by default - We're now running our images as an unprivileged user by default. This is a huge step forward in security and compatibility.
- PHP 8.3 support - We're now shipping the latest and greatest.
- Pin to the exact minor version - Pin your app to the exact minor version of PHP that you want to use. This means you can pin to
8.2.12instead of8.2. - Easier start up script customization - We now have a folder called
/etc/entrypoint.dthat allows you to easily customize your container with scripts. Just put them in numerical order and we'll execute any shell script you want. No S6 Overlay knowledge required. - Expanded Laravel Automations - We added automations to run
config:cache,route:cache,view:cache,event:cache,migrate --force --isolated, andstorage:link - NGINX Unit Support - We're offering NGINX Unit as a variation as an alternative to PHP-FPM. This allows you to run PHP applications without the need for a webserver like NGINX or Apache to run with PHP-FPM.
- Available on GitHub Packages - We're now publishing our images to GitHub Packages. This means you can use our images without needing to authenticate with Docker Hub.
🤩 Learn more & Get Started

Read the differences between our images vs others →
New Contributors
- @flemming-petersen made their first contribution in #204
- @josiasmontag made their first contribution in #294
- @jbxonline made their first contribution in #321
Full Changelog: v2.2.1...v3.0.0
v3.0.0-beta7
✨ What's new
- Set Unit's processes to be dynamic by default (like we do for FPM). Adds new variables:
UNIT_PROCCESSES_IDLE_TIMEOUT(default:30)UNIT_PROCCESSES_MAX(default:20)UNIT_PROCCESSES_SPARE(default:2)
🐛Fixes
The changes above fix this issue with the default configuration:
Full Changelog: v3.0.0-beta6...v3.0.0-beta7
v3.0.0-beta6
v3.0.0-beta5
🚀 What's new
- Added ability to select images based on the GitHub Repository Version (#323)
- Add new variable of
SHOW_WELCOME_MESSAGEto reduce console ouput (#319)
🐛 Fixes
- Add check for Unit custom certs by @jbxonline in #321
- Fixed Debug Mode with unprivileged images (#327)
New Contributors
- @jbxonline made their first contribution in #321
Full Changelog: v3.0.0-beta4...v3.0.0-beta5
v3.0.0-beta4
What's Changed
Caution
Even if you're not running these beta images, we strongly encourage you to prepare for the v3 release and reading our migration guide: https://serversideup.net/open-source/docker-php/docs/guide/migrating-from-v2-to-v3
This release contains the final breaking changes before a production release.
Background
In order to improve container security and compatibility, we have moved to running the containers as www-data by default.
⚠️ BREAKING CHANGES: How this affects you
- Instead of running things as
rootby default, everything runs aswww-datato improve security, users experience, and compatibility with other hosts/orchestrators - FPM-NGINX, FPM-Apache, & Unit now listen on
8080and8443by default - If you're installing extensions or customizing the image, you'll likely need to run
USER rootthen perform your action before dropping back toUSER www-data(Learn more about file permissions) - The syntax for
docker-php-serversideup-set-idhas changed touid:gid
Getting the images to accept requests on 80 and 443
Simply use Docker's port methods to forward correctly:
docker run --rm -e SSL_MODE=mixed -p 80:8080 -p 443:8443 serversideup/php:beta-8.3-fpm-nginx
What's changed
- Change execution to be unprivileged by @jaydrogers in #311
Read the migration guide
We've put together this migration guide and checklist: https://serversideup.net/open-source/docker-php/docs/guide/migrating-from-v2-to-v3
Full Changelog: v3.0.0-beta3...v3.0.0-beta4
v3.0.0-beta3
What's Changed
- Improve release process by @jaydrogers in #282
- Install opcache extension by default by @josiasmontag in #294
- Improve Laravel Migration support for SQLite & Laravel 11 by @jaydrogers in #302
- Set default NGINX values for "fastcgi_buffers" and "fastcgi_buffer_size" by @jaydrogers in #305
⚠️ Potential Breaking Changes Coming
Caution
There may be a breaking change coming up for fpm-nginx and fpm-apache images.
In order to dramatically improve container security and preventing "file permission hell" with new users, we may be changing the default ports for Apache and NGINX so we can run this as the www-data user by default. See this post for more details (open for comment): #179 (comment)
Be sure to chime in and subscribe to releases for the latest news.
New Contributors
- @josiasmontag made their first contribution in #294
Full Changelog: v3.0.0-beta2...v3.0.0-beta3
v3.0.0-beta2
😅 Getting ready for the upgrade
Caution
If you're not already aware, there are MAJOR improvements coming in v3 over v2. Unfortunately this required some breaking changes. Read more about the beta here →
Make sure you're aware of what's coming up soon. If you fail to take action, you will have issues if your application automatically updates.
In short make sure you understand this guide BEFORE the new v3 gets launched:
Migration guide from v2 to v3 →
🚀 New Features (from beta1 → beta2)
fpm-apacheis now available
⚠️ Breaking Change (from beta1 → beta2)
LOG_LEVELconflicted with Laravel (#277), so we changed it toLOG_OUTPUT_LEVEL- The
release-v3-0.docker-php.pages.devpreview site has been merged into main. Everything is now located at https://serversideup.net/open-source/docker-php/
🛠️ Dependency updates
- Bumped
docker-php-extension-installerto2.2.1
v2.2.1
🧼 Cleanup
- An explicit S6 Overlay version can now be set in
src/cli/Dockerfile