Upgrade path to PHP 8.2

I am looking at upgrading my PHP apps to PHP 8.2. Changing the PHP_VERSION argument doesn’t work because there’s no serversideup/php:8.2-fpm-nginx-v1.5.0 image.

Is there any easy way to upgrade to 8.2? @fideloper-fly Do we need to wait for Use supevisord over s6 init by fideloper · Pull Request #1406 · superfly/flyctl · GitHub?

I need to get the maintainer to make a php8.2 build for us or likely do a bunch of work (either on that PR or a different base image).

S6 is making life hard as it demands that it runs as pid 1.

The base image does some templating based on env cars, and those are driven by s6, so it’s not necessarily a simple change. I’ll be working on it.

1 Like

I’m not too knowledgeable about this, but is it worth it sticking to the serversideup/php images? I feel an Alpine image would be easier :smiling_face_with_tear:

Hey there!

I avoid Alpine based images because:

  1. They often have issues with IPv6 addressing :confused:
  2. They’re harder to work with

In any case, I’ve created some new base containers to use. They grab the parts (from serversideup/php) needed to work on Fly, and leave behind things we didn’t need (and things that are not needed, or incompatible - like using S6 as a process monitor)

I have a PR open to flyctl to use the new base containers. I’ve been testing them today, so far so good!

This update includes the ability to use PHP 8.2.

If you want to give this a quick test, you can either build flyctl from the branch of that PR, or:

  1. Grab its Dockerfile
  2. Grab the updated entrypoint.sh script
  3. Deploy based on that

Do you want to give that a test? (I’ll get the PR merged soon, but would love someone else to test it as well!)

2 Likes

I just tested this new image on a few projects, with and without Octane. PHP 8.1 and 8.2. Works like a charm! Thanks!

edit: Oh and thanks for the explanation for deciding against Alpine :+1:

Great, glad that worked!