WordPress docker image, powered by s6 supervised nginx/php-fpm combo
Go to file
xZero707 8df891a400
Refactor plugin installer
- Fixes issue where installation is dependent of existence of working database connection

- Overall improvements

- Move out some logic to wp-plugin script

- Use curl to download plugins, instead of wp cli
2023-03-21 01:40:07 +01:00
.github Bump lewagon/wait-on-check-action from 1.2.0 to 1.3.1 2023-02-16 23:02:59 +00:00
bin Disable TTY 2022-09-10 22:48:24 +02:00
build Deprecate WordPress versions prior to 5.9 2023-01-20 17:03:12 +01:00
patches Deprecate WordPress versions prior to 5.9 2023-01-20 17:03:12 +01:00
rootfs Refactor plugin installer 2023-03-21 01:40:07 +01:00
.gitignore Update .gitignore 2022-11-02 21:28:11 +01:00
Dockerfile Fix issue where wp-config.php is not initialized 2023-01-24 02:17:20 +01:00
LICENSE Initial commit 2020-03-29 01:09:29 +01:00
README.md Initialize WordPress during build time 2023-01-23 23:03:06 +01:00

wordpress

WorPress docker image, powered by nginx/php-fpm combo and managed by s6 supervisor.

Attempt to fix several of WordPress anti-patterns in ready to deploy container

Deprecation notice

  • 2023-01-20 Deprecation of WordPress versions prior to 5.9
    • Preparation for PHP8.1 upgrade.
    • WordPress versions prior to 5.9 have no PHP8.1 support.
    • PHP8.0 active support has ended since 2022-11-28, therefore skipping this release
    • PHP7.4 reached end-of-life on 2022-11-28 and should not be used.
    • Old images will remain, but will receive no further updates, until their eventual removal. Usage is not recommended.
    • This decision will make build stack significantly lighter, ensuring much faster future builds
  • 2023-01-21 Retirement of PHP7.4. The king is dead, long live the king!
  • 2023-01-22 Replace NGINX + PHP-FPM combo with NGINX Unit
    • Split and rebase image and rework build
    • This is breaking change affecting all images
    • If your setup was vanilla, it should work out of the box
    • If you need nginx, you can set it up as a reverse proxy
    • NGINX Unit is modern application server, replacing old PHP-FPM
    • Independent benchmarks have show that NGINX Unit can handle much higher load and remain stable
  • 2023-01-23 WordPress is no longer installed during runtime and it's bundled into the image
    • This renders WP_LOCALE environment variable useless
    • Instead, you will be offered to select locale during the first setup

Public builds (docker)

You can use public build:

nlss/wordpress

You can also use specific version of WordPress:

nlss/wordpress:6.1.0

Replace version number with desired version, eg. 6.0.2.

Automatic plugin installer

WARNING: This feature is experimental and can fail. Proceed with caution

This container can install plugins during container startup defined in environment variable WORDPRESS_PLUGIN_LIST

If environment variable is left empty, or undefined, installer will skip.

Plugins are not activated automatically; This is intentional.

Usage example:

# Notice that specific version can be defined
WORDPRESS_PLUGIN_LIST=akismet:4.1.8 two-factor

Caveats:

  • If plugin was previously installed, and not defined on the list, it will NOT be removed.
  • If plugin install fails, container will exit with error

TODO

  • ~Disable core updates~
  • ~Install/update plugins on the fly using wp cli (with versioning)~
  • Install/update themes on the fly using wp cli (with versioning)
  • ~Apply theme and eventual plugin customizations using patch files~ (Partial)
  • Support automatic install using ENV
  • Create users automatically using ENV