wordpress/README.md

67 lines
2.6 KiB
Markdown

# 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