Skip to content

chore(docker): bump flex docker to php8.5#628

Merged
stephenwaite merged 14 commits intoopenemr:masterfrom
stephenwaite:update-flex
Apr 7, 2026
Merged

chore(docker): bump flex docker to php8.5#628
stephenwaite merged 14 commits intoopenemr:masterfrom
stephenwaite:update-flex

Conversation

@stephenwaite
Copy link
Copy Markdown
Member

Fixes #

Short description of what this resolves:

Changes proposed in this pull request:

Copilot AI review requested due to automatic review settings April 2, 2026 23:05
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the OpenEMR “flex” Docker image to default to PHP 8.5, aligning the build-time PHP version selection with the existing versioned configuration layout.

Changes:

  • Bump the default PHP_VERSION build arg from 8.4 to 8.5.
  • Update the inline example for the abbreviated version (PHP_VERSION_ABBR) to reflect 8.5 → 85.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bradymiller
Copy link
Copy Markdown
Member

bradymiller commented Apr 2, 2026

This change won't get what you want, but good to do.
recommend also:

  1. Change 8.1.1 docker to use alpine 23 and PHP 8.5 (the flex dockers have a php.ini for 8.5 that can copy over)
  2. Change flex to use alpine 23 by default like you did for php 8.5. Then make build-323.yml and test-flex-323.yml scripts, which can derive from the 322 scripts (drop 8.2 (pretty sure alpine 3.23 does not support php 8.2) from them and add 8.5)

Comment thread docker/openemr/flex/Dockerfile Outdated
php${PHP_VERSION_ABBR}-pecl-imagick \
php${PHP_VERSION_ABBR}-phar \
php${PHP_VERSION_ABBR}-redis \
"$(if [ "${PHP_VERSION}" = "8.5" ]; then echo php${PHP_VERSION_ABBR}-pecl-redis; else echo php${PHP_VERSION_ABBR}-redis; fi)" \
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

rec making this future proof by flipping this (so don;t need to refix for php 8.6)
ie if 8.2, 8.3, 8.4 then redis else pecl-redis

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unless this is just a temporary fix for only 8.5

Comment thread docker/openemr/flex/Dockerfile
Comment thread docker/openemr/8.1.1/Dockerfile
Comment thread .github/workflows/build-323.yml
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.

Comments suppressed due to low confidence (1)

docker/openemr/flex/Dockerfile:122

  • The conditional package arguments for php${PHP_VERSION_ABBR}-json and php${PHP_VERSION_ABBR}-opcache are wrapped in quotes. When the condition is false (e.g., PHP 8.5), this expands to an empty-string argument, and apk add will fail trying to install a package named "". Remove the quotes around the command substitution (so empty output disappears), or restructure the RUN step to append these packages conditionally without producing empty args.
    "$(if [ "${PHP_VERSION}" = "8.2" ] || [ "${PHP_VERSION}" = "8.3" ] || [ "${PHP_VERSION}" = "8.4" ]; then echo php${PHP_VERSION_ABBR}-json; fi)" \
    php${PHP_VERSION_ABBR}-ldap \
    php${PHP_VERSION_ABBR}-mbstring \
    php${PHP_VERSION_ABBR}-mysqli \
    "$(if [ "${PHP_VERSION}" = "8.2" ] || [ "${PHP_VERSION}" = "8.3" ] || [ "${PHP_VERSION}" = "8.4" ]; then echo php${PHP_VERSION_ABBR}-opcache; fi)" \
    php${PHP_VERSION_ABBR}-openssl \

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/build-322.yml
@bradymiller
Copy link
Copy Markdown
Member

time for alpine 3.23 :)
🕺
(note that nodejs will go from 22 to 24 on this, so will involve some subsequent documentation changes (like the README build instructions), some ci changes (where nodejs versions 22 is used for sutff) and sometimes requires care coordination fixes (unlikely though and would not hold for that)). Rec pressing ahead and dealing with those things after the upgrade to alpine 3.23

@stephenwaite stephenwaite merged commit ac7013d into openemr:master Apr 7, 2026
47 checks passed
@bradymiller
Copy link
Copy Markdown
Member

  1. Just did the 'Flex 3.23 Dockers Build', so now published on dockerhub.

@bradymiller
Copy link
Copy Markdown
Member

kojiromike added a commit to openemr/openemr that referenced this pull request Apr 10, 2026
)

## Summary

- Pin all CI docker-compose images to their current `@sha256:` digests,
including shared compose files (mailpit, dev-nginx, selenium) and
inferno
- Move `compose-shared-mailpit.yml` and `compose-shared-nginx.yml` into
their own directories so Dependabot can discover them
- Fix `parse_docker_dir.sh` to strip `@sha256:` suffixes before
splitting image references (prevents noisy matrix names)
- Reorder `COMPOSE_FILE` so the first entry is always directly in `ci/`
(required for correct relative path resolution)
- Add Dependabot `docker-compose` entries covering all CI directories

This prevents silent CI breakage when an upstream image is rebuilt under
the same tag. The recent Alpine 3.22→3.23 bump in `dev-php-fpm:8.5`
(openemr/openemr-devops#628) changed Node.js from 22 to 24, causing an
ABI mismatch in `libxmljs2` that broke
`CcdaServiceDocumentRequestorTest::testSocket_get`. With digest pinning,
that image change would have arrived as a Dependabot PR where CI would
have caught the failure before merge.

## Test plan

- [x] All CI workflows pass with pinned digests
- [ ] Dependabot creates PRs when images are rebuilt (observable after
merge)
@bradymiller
Copy link
Copy Markdown
Member

(below completed at: openemr/openemr#11495 )
3. update core ci
4. update core README.md build (update to use nodejs 24)
5. update core CONTRIBUTING.md (instructions for testing other php versions)
6. update core insane docker dev environment (README.md and docker-compose.yml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants