From be2e96d4a2e9ffb4a6a15737fe88f9a3239dfd98 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 10:36:14 +0100 Subject: [PATCH 01/10] Update documentation --- CHANGELOG.md | 8 + README.md | 201 +++++++++++++++-------- doc/available-tools.md | 131 ++++++++++++++- doc/base-images.md | 2 +- doc/docker-env-variables.md | 318 +++++++++++++++++++++++++----------- doc/docker-volumes.md | 154 ++++++++++------- doc/flavours.md | 12 +- doc/php-modules.md | 4 +- doc/php-versions.md | 30 ++-- 9 files changed, 608 insertions(+), 252 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 663ee5cd..31ddc787 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ ## Unreleased +## Release 0.146 + +This release adds lots of documentation about recently added features. + +### Added +- Documentation + + ## Release 0.145 This is a massive restructuring release, which adds another layer on top of Ansible to easily manage/edit/add PHP tools and to configure their respective order of building and installing. diff --git a/README.md b/README.md index 49f775c5..954d4e6b 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,11 @@ [![License](https://img.shields.io/badge/license-MIT-%233DA639.svg)](https://opensource.org/licenses/MIT) -| Upstream Project | -|------------------| -| | +| PHP-FPM | Reference Implementation | +|:----------------:|:------------------------:| +| | | +| Streamlined [PHP-FPM](https://github.com/devilbox/docker-php-fpm) images | The [Devilbox](https://github.com/cytopia/devilbox) | + [![](https://img.shields.io/docker/pulls/devilbox/php-fpm.svg)](https://hub.docker.com/r/devilbox/php-fpm) @@ -26,6 +28,7 @@ versions and packed with different types of integrated PHP modules. It also solv This repository also allows you to quickly generate and **build your own custom PHP-FPM Docker image** with whatever PHP extension your desire for whatever PHP version you want and for any platform you're on (`amd64` or `arm64`). Jump to **[#Build your own image](#build-your-own-image)**. +

Docker Tags

* [`5.2-base`](Dockerfiles/base/Dockerfile-5.2), [`5.3-base`](Dockerfiles/base/Dockerfile-5.3), [`5.4-base`](Dockerfiles/base/Dockerfile-5.4), [`5.5-base`](Dockerfiles/base/Dockerfile-5.5), [`5.6-base`](Dockerfiles/base/Dockerfile-5.6), [`7.0-base`](Dockerfiles/base/Dockerfile-7.0), [`7.1-base`](Dockerfiles/base/Dockerfile-7.1), [`7.2-base`](Dockerfiles/base/Dockerfile-7.2), [`7.3-base`](Dockerfiles/base/Dockerfile-7.3), [`7.4-base`](Dockerfiles/base/Dockerfile-7.4), [`8.0-base`](Dockerfiles/base/Dockerfile-8.0), [`8.1-base`](Dockerfiles/base/Dockerfile-8.1), [`8.2-base`](Dockerfiles/base/Dockerfile-8.2) @@ -38,6 +41,7 @@ This repository also allows you to quickly generate and **build your own custom :information_source: For details see **[Documentation: Supported Architectures](doc/supported-architectures.md)** +

PHP Versions

The following PHP versions are provided by this repository. @@ -52,6 +56,7 @@ The following PHP versions are provided by this repository. :information_source: For details see **[Documentation: Base Images](doc/base-images.md)** +

Flavours

The provided Docker images heavily rely on inheritance to guarantee smallest possible image size. Each of them provide a working PHP-FPM server and you must decide what version works best for you. Look at the sketch below to get an overview about the two provided flavours and each of their different types. @@ -86,6 +91,7 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos :information_source: For details see **[Documentation: Base Images](doc/base-images.md)** +

Available PHP extensions

> Click below listed extensions for details: @@ -208,72 +214,68 @@ The provided Docker images heavily rely on inheritance to guarantee smallest pos The provided Docker images offer environment variables to alter their startup behaviour. -:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
-:information_source: For details see **[Documentation: Environment Variables](doc/docker-env-variables.md)**
- -#### Flavour: base - -`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID` - -#### Flavour: mods - -`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID` - -#### Flavour: prod - -`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID`, `TIMEZONE`, `DOCKER_LOGS`, `ENABLE_MODULES`, `DISABLE_MODULES`, `ENABLE_MAIL`, `FORWARD_PORTS_TO_LOCALHOST` - -#### Flavour: slim - -`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID`, `TIMEZONE`, `DOCKER_LOGS`, `ENABLE_MODULES`, `DISABLE_MODULES`, `ENABLE_MAIL`, `FORWARD_PORTS_TO_LOCALHOST`,` MYSQL_BACKUP_USER`, `MYSQL_BACKUP_PASS`, `MYSQL_BACKUP_HOST` - -#### Flavour: work - -`DEBUG_ENTRYPOINT`, `NEW_UID`, `NEW_GID`, `TIMEZONE`, `DOCKER_LOGS`, `ENABLE_MODULES`, `DISABLE_MODULES`, `ENABLE_MAIL`, `FORWARD_PORTS_TO_LOCALHOST`,` MYSQL_BACKUP_USER`, `MYSQL_BACKUP_PASS`, `MYSQL_BACKUP_HOST` +:information_source: For details see **[Documentation: Environment Variables](doc/docker-env-variables.md)** or click on the variable name directly. + +| Variable | Short description | +|-------------------------------------------------|---------------------------------------------------------------| +| [`DEBUG_ENTRYPOINT`][lnk_env_debug] | Control docker log verbosity | +| [`NEW_UID`][lnk_env_uid] | Syncronize user-id file system permissions | +| [`NEW_GID`][lnk_env_gid] | Syncronize group-id file system permissions | +| [`TIMEZONE`][lnk_env_timezone] | Set timezone | +| [`DOCKER_LOGS`][lnk_env_logs] | Make PHP log to file or docker logs | +| [`ENABLE_MODULES`][lnk_env_enable_mods] | Enable specific PHP extensions | +| [`DISABLE_MODULES`][lnk_env_disable_mods] | Disable specific PHP extensions | +| [`ENABLE_MAIL`][lnk_env_enable_mail] | Control email-catch all (to not accidentally send out emails) | +| [`FORWARD_PORTS_TO_LOCALHOST`][lnk_env_forward] | Make remote ports available locally inside the container | +| [`MYSQL_BACKUP_USER`][lnk_env_backup_user] | Set MySQL username (for backups) | +| [`MYSQL_BACKUP_PASS`][lnk_env_backup_pass] | Set MySQL password (for backups) | +| [`MYSQL_BACKUP_HOST`][lnk_env_backup_host] | Set MySQL hostname (for backups) | + +[lnk_env_debug]: doc/docker-env-variables.md#-debug_entrypoint +[lnk_env_uid]: doc/docker-env-variables.md#-new_uid +[lnk_env_gid]: doc/docker-env-variables.md#-new_gid +[lnk_env_timezone]: doc/docker-env-variables.md#-timezone +[lnk_env_logs]: doc/docker-env-variables.md#-docker_logs +[lnk_env_enable_mods]: doc/docker-env-variables.md#-enable_modules +[lnk_env_disable_mods]: doc/docker-env-variables.md#-disable_modules +[lnk_env_enable_mail]: doc/docker-env-variables.md#-enable_mail +[lnk_env_forward]: doc/docker-env-variables.md#-forward_ports_to_localhost +[lnk_env_backup_user]: doc/docker-env-variables.md#-mysql_backup_user +[lnk_env_backup_pass]: doc/docker-env-variables.md#-mysql_backup_pass +[lnk_env_backup_host]: doc/docker-env-variables.md#-mysql_backup_host

Volumes

-The provided Docker images offer different volumes to be mounted - -:information_source: For details see **[Documentation: Flavours](doc/flavours.md)**
-:information_source: For details see **[Documentation: Volumes](doc/docker-volumes.md)**
- -#### Flavour: base - -* None - -#### Flavour: mods - -* None +The provided Docker images offer different volumes to be mounted. -#### Flavour: prod +:information_source: For details see **[Documentation: Volumes](doc/docker-volumes.md)** or click on the volume name directly. -* **[`/etc/php-custom.d`]()**, **[`/etc/php-fpm-custom.d`]()** - *custom PHP/PHP-FPM config files* -* **[`/startup.1.d`]()**, **[`/startup.2.d`]()** - *custom startup scripts* -* **[`/var/log/php`]()**, **[`/var/mail`]()** - *logs and mail data* -* **[`/etc/supervisor/custom.d`]()** - *custom supervisord config files* +| Volume | Short description | +|----------------------------------------------------|---------------------------------------| +| [`/etc/php-custom.d/`][lnk_vol_php_custom] | Add custom PHP `*.ini` files | +| [`/etc/php-fpm-custom.d/`][lnk_vol_php_fpm_custom] | Add custom PHP-FPM `*.conf` files | +| [`/startup.1.d/`][lnk_vol_startup1] | Add custom startup `*.sh` files | +| [`/startup.2.d/`][lnk_vol_startup2] | Add custom startup `*.sh` files | +| [`/var/log/php/`][lnk_vol_log_php] | Find PHP log files | +| [`/var/mail/`][lnk_vol_mail] | Find sent emails | +| [`/etc/supervisor/custom.d/`][lnk_vol_supervisor] | Add custom supervisord `*.conf` files | +| [`/etc/bashrc-devilbox.d/`][lnk_vol_bashrc] | Add custom bashrc files | +| [`/shared/backups/`][lnk_vol_backups] | Find MySQL backups | +| [`/ca/`][lnk_vol_ca] | Add custom Certificate Authority | -#### Flavour: slim +[lnk_vol_php_custom]: doc/docker-volumes.md#-etcphp-customd +[lnk_vol_php_fpm_custom]: doc/docker-volumes.md#-etcphp-fpm-customd +[lnk_vol_startup1]: doc/docker-volumes.md#-startup1d +[lnk_vol_startup2]: doc/docker-volumes.md#-startup2d +[lnk_vol_log_php]: doc/docker-volumes.md#-varlogphp +[lnk_vol_mail]: doc/docker-volumes.md#-varmail +[lnk_vol_supervisor]: doc/docker-volumes.md#-etcsupervisorcustomd +[lnk_vol_bashrc]: doc/docker-volumes.md#-etcbashrc-devilboxd +[lnk_vol_backups]: doc/docker-volumes.md#-sharedbackups +[lnk_vol_ca]: doc/docker-volumes.md#-ca -* **[`/etc/php-custom.d`]()**, **[`/etc/php-fpm-custom.d`]()** - *custom PHP/PHP-FPM config files* -* **[`/startup.1.d`]()**, **[`/startup.2.d`]()** - *custom startup scripts* -* **[`/var/log/php`]()**, **[`/var/mail`]()** - *logs and mail data* -* **[`/etc/supervisor/custom.d`]()** - *custom supervisord config files* -* **[`/etc/bashrc-devilbox.d`]()** - *custom bashrc config files* -* **[`/shared/backups`]()** - *backup data* -* **[`/ca`]()** - *trusted Certificate Authorities* - -#### Flavour: work - -* **[`/etc/php-custom.d`]()**, **[`/etc/php-fpm-custom.d`]()** - *custom PHP/PHP-FPM config files* -* **[`/startup.1.d`]()**, **[`/startup.2.d`]()** - *custom startup scripts* -* **[`/var/log/php`]()**, **[`/var/mail`]()** - *logs and mail data* -* **[`/etc/supervisor/custom.d`]()** - *custom supervisord config files* -* **[`/etc/bashrc-devilbox.d`]()** - *custom bashrc config files* -* **[`/shared/backups`]()** - *backup data* -* **[`/ca`]()** - *trusted Certificate Authorities*

Ports

@@ -309,7 +311,7 @@ Each PHP version is using the same sane default php.ini values, making it pain-f | base | [php.ini](Dockerfiles/base/data/php-ini.d/) and [php-fpm.conf](Dockerfiles/base/data/php-fpm.conf/) | | mods | inherits from base | | prod | inherits from base | -| slim | [php.ini](Dockerfiles/work/data/php-ini.d/) and [php-fpm.conf](Dockerfiles/work/data/php-fpm.conf/) | +| slim | [php.ini](Dockerfiles/slim/data/php-ini.d/) and [php-fpm.conf](Dockerfiles/slim/data/php-fpm.conf/) | | work | inherits from slim | @@ -461,6 +463,7 @@ If you want a fully functional Docker Compose setup, which allows to switch PHP Docker images are built and tested every night by **[GitHub Actions](https://github.com/devilbox/docker-php-fpm/actions?workflow=nightly)** and pushed to **[Docker hub](https://hub.docker.com/r/devilbox/php-fpm/)** on success. This is all done automatically to ensure that sources as well as base images are always fresh and in case of security updates always have the latest patches. +

Build your own image

You are not interested in the provided Docker images and want to (ab)use this repository purely to generate your own custom images? @@ -479,6 +482,7 @@ make build STAGE=mods VERSION=8.1 ARCH=linux/arm64 :information_source: For details see **[Abuser Documentation: Build your own image](doc/abuser/README.md)** +

Contributing

Contributors are welcome. Feel free to star and clone this repository and submit issues and pull-requests. Add examples and show what you have created with the provided images. If you see any errors or ways to improve this repository in any way, please do so. @@ -486,7 +490,8 @@ Contributors are welcome. Feel free to star and clone this repository and submit :information_source: For details see **[Contributor Documentation: PHP Module definitions](php_modules/README.md)** -

Related Project

+ +

Related Project

If you want to add custom modules, tools or apply any other changes, but don't think it fits in here, you can do so over at the **[PHP-FPM Community Images](https://github.com/devilbox/docker-php-fpm-community)**. @@ -505,6 +510,46 @@ See the reference implementation below: + +

Sister Projects

+ +Show some love for the following sister projects. + + + + + + + + + + + + + + + + + + + + + + +
๐Ÿ–ค Project๐Ÿฑ GitHub๐Ÿ‹ DockerHub
Devilbox
docker-mysqldevilbox/mysql
+ docker-apache-2.2
+ docker-apache-2.4
+ docker-nginx-stable
+ docker-nginx-mainline +
+ devilbox/apache-2.2
+ devilbox/apache-2.4
+ devilbox/nginx-stable
+ devilbox/nginx-mainline +
+ + +

Community

In case you seek help, go and visit the community pages. @@ -512,9 +557,9 @@ In case you seek help, go and visit the community pages. - - - + + + @@ -544,9 +589,9 @@ In case you seek help, go and visit the community pages.

Documentation

Chat

Forum

๐Ÿ“˜ Documentation

๐Ÿ—ช Chat

๐Ÿ—ซ Forum

+

Credits

-- **[@cytopia](https://github.com/cytopia)** - **[@mrLexx](https://github.com/mrLexx)** - **[@fibis](https://github.com/fibis)** - **[@llaville](https://github.com/llaville)** @@ -555,6 +600,30 @@ In case you seek help, go and visit the community pages. - **[@Tuurlijk](https://github.com/Tuurlijk)** + +

Maintainer

+ +**[@cytopia](https://github.com/cytopia)** + +I try to keep up with literally **over 100 projects** besides a full-time job. +If my work is making your life easier, consider contributing. ๐Ÿ–ค + +* [GitHub Sponsorship](https://github.com/sponsors/cytopia) +* [Patreon](https://www.patreon.com/devilbox) +* [Open Collective](https://opencollective.com/devilbox) + +**Findme:** +**๐Ÿฑ** [cytopia](https://github.com/cytopia) / [devilbox](https://github.com/devilbox) | +**๐Ÿ‹** [cytopia](https://hub.docker.com/r/cytopia/) / [devilbox](https://hub.docker.com/r/devilbox/) | +**๐Ÿฆ** [everythingcli](https://twitter.com/everythingcli) / [devilbox](https://twitter.com/devilbox) | +**๐Ÿ“–** [everythingcli.org](http://www.everythingcli.org/) + +**Contrib:** PyPI: [cytopia](https://pypi.org/user/cytopia/) **ยท** +Terraform: [cytopia](https://registry.terraform.io/namespaces/cytopia) **ยท** +Ansible: [cytopia](https://galaxy.ansible.com/cytopia) + + +

License

**[MIT License](LICENSE.md)** diff --git a/doc/available-tools.md b/doc/available-tools.md index e48e4ec2..d3490ec7 100644 --- a/doc/available-tools.md +++ b/doc/available-tools.md @@ -17,9 +17,131 @@ Tools | :information_source: For details on how to generate modules see **[Abuser Documentation: Build your own image](../doc/abuser/README.md)**
-### PHP Tools (`slim`) +### PHP Tools ([`prod`](flavours.md#prod)) -The following PHP cli tools are available on the `slim` flavour: +The following PHP cli tools are available on the [`prod`](flavours.md#prod) flavour: + +> :information_source: Click on any tool name to find out what they are + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ToolPHP 5.2PHP 5.3PHP 5.4PHP 5.5PHP 5.6PHP 7.0PHP 7.1PHP 7.2PHP 7.3PHP 7.4PHP 8.0PHP 8.1PHP 8.2
Cronโœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“
Postfixโœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“
Postfix PCREโœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“
Rsyslogโœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“
Socatโœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“
Supervisorโœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“โœ“
+ + +### PHP Tools ([`slim`](flavours.md#slim)) + +Additionally to all of the `prod` tools shown above, the following PHP cli tools are available on the [`slim`](flavours.md#slim) flavour: > :information_source: Click on any tool name to find out what they are @@ -237,10 +359,9 @@ The following PHP cli tools are available on the `slim` flavour: > :exclamation: **\[1\]** Not available on `arm64` Docker image. +### PHP Tools ([`work`](flavours.md#work)) -### PHP Tools (`work`) - -Additionally to all of the `slim` tools shown above, the following PHP cli tools are available on the `work` flavour: +Additionally to all of the `slim` tools shown above, the following PHP cli tools are available on the [`work`](flavours.md#work) flavour: > :information_source: Click on any tool name to find out what they are diff --git a/doc/base-images.md b/doc/base-images.md index fee4f223..8aaa9c7b 100644 --- a/doc/base-images.md +++ b/doc/base-images.md @@ -17,7 +17,7 @@ Base Images ### Base Images -Have a look at the following Devilbox base images for which no official versions exist yet, but are required to serve as a foundation for this repository: +Have a look at the following Devilbox base images for which no official versions exist yet (as of the time of writing), but are required to serve as a foundation for this repository: * [PHP-FPM 5.2](https://github.com/devilbox/docker-php-fpm-5.2) * [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3) diff --git a/doc/docker-env-variables.md b/doc/docker-env-variables.md index bbaebef8..f8cf6c4d 100644 --- a/doc/docker-env-variables.md +++ b/doc/docker-env-variables.md @@ -17,98 +17,226 @@ Env Vars | ### Environment Variables -Have a look at the following table to see all supported environment variables for each Docker image flavour. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ImageEnv VariableTypeDefaultDescription
base

mods

prod

slim

work
DEBUG_ENTRYPOINTint0Set debug level for startup.
0 Only warnings and errors are shown.
1 All log messages are shown
2 All log messages and executed commands are shown.
NEW_UIDint1000Assign the PHP-FPM user a new uid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local user.
(Type id -u for your uid).
NEW_GIDint1000Assign the PHP-FPM group a new gid in order to syncronize file system permissions with your host computer and the Docker container. You should use a value that matches your host systems local group.
(Type id -g for your gid).
prod

slim

work
TIMEZONEstringUTCSet docker OS timezone as well as PHP timezone.
(Example: Europe/Berlin)
DOCKER_LOGSbool1By default all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr. Those which support it can change the behaviour to log into files inside the container. Their respective directories are available as volumes that can be mounted to the host computer. This feature might help developer who are more comfortable with tailing or searching through actual files instead of using docker logs.

Set this variable to 0 in order to enable logging to files. Log files are avilable under /var/log/php/ which is also a docker volume that can be mounted locally.
ENABLE_MODULESstring''Comma separated list of PHP modules to enable, which are not enabled by default.
Example:
ENABLE_MODULES=blackfire, ioncube, psr, phalcon
DISABLE_MODULESstring''Comma separated list of PHP modules to disable.
Example:
DISABLE_MODULES=swoole,imagick
ENABLE_MAILbool0Start local postfix with or without email catch-all.
0: Postfix service disabled.
1: Postfix service started normally.
2: Postfix service started configured for local delivery and all mails sent (even to real domains) will be catched locally. No email will ever go out. They will all be stored in a local devilbox account.
Value: 0, 1 or 2
FORWARD_PORTS_TO_LOCALHOSTstringList of remote ports to forward to 127.0.0.1.
Format:
<local-port>:<remote-host>:<remote-port>
You can separate multiple entries by comma.
Example:
3306:mysqlhost:3306, 6379:192.0.1.1:6379
slim

work
MYSQL_BACKUP_USERstring''Username for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_PASSstring''Password for mysql backups used for bundled mysqldump-secure
MYSQL_BACKUP_HOSTstring''Hostname for mysql backups used for bundled mysqldump-secure
+1. [Overview](#overview) +2. [`DEBUG_ENTRYPOINT`][lnk_env_debug] +3. [`NEW_UID`][lnk_env_uid] +4. [`NEW_GID`][lnk_env_gid] +5. [`TIMEZONE`][lnk_env_timezone] +6. [`DOCKER_LOGS`][lnk_env_logs] +7. [`ENABLE_MODULES`][lnk_env_enable_mods] +8. [`DISABLE_MODULES`][lnk_env_disable_mods] +9. [`ENABLE_MAIL`][lnk_env_enable_mail] +10. [`FORWARD_PORTS_TO_LOCALHOST`][lnk_env_forward] +11. [`MYSQL_BACKUP_USER`][lnk_env_backup_user] +12. [`MYSQL_BACKUP_PASS`][lnk_env_backup_pass] +13. [`MYSQL_BACKUP_HOST`][lnk_env_backup_host] + +[lnk_env_debug]: #-debug_entrypoint +[lnk_env_uid]: #-new_uid +[lnk_env_gid]: #-new_gid +[lnk_env_timezone]: #-timezone +[lnk_env_logs]: #-docker_logs +[lnk_env_enable_mods]: #-enable_modules +[lnk_env_disable_mods]: #-disable_modules +[lnk_env_enable_mail]: #-enable_mail +[lnk_env_forward]: #-forward_ports_to_localhost +[lnk_env_backup_user]: #-mysql_backup_user +[lnk_env_backup_pass]: #-mysql_backup_pass +[lnk_env_backup_host]: #-mysql_backup_host + + +### Overview + +The following table gives an overview about which environment variable is available to which flavour. + +| Environment Variable | `base` | `mods` | `prod` | `slim` | `work` | +|------------------------------|--------|--------|--------|--------|--------| +| `DEBUG_ENTRYPOINT` | โœ“ | โœ“ | โœ“ | โœ“ | โœ“ | +| `NEW_UID` | โœ“ | โœ“ | โœ“ | โœ“ | โœ“ | +| `NEW_GID` | โœ“ | โœ“ | โœ“ | โœ“ | โœ“ | +| `TIMEZONE` | | | โœ“ | โœ“ | โœ“ | +| `DOCKER_LOGS` | | | โœ“ | โœ“ | โœ“ | +| `ENABLE_MODULES` | | | โœ“ | โœ“ | โœ“ | +| `DISABLE_MODULES` | | | โœ“ | โœ“ | โœ“ | +| `ENABLE_MAIL` | | | โœ“ | โœ“ | โœ“ | +| `FORWARD_PORTS_TO_LOCALHOST` | | | โœ“ | โœ“ | โœ“ | +| `MYSQL_BACKUP_USER` | | | | โœ“ | โœ“ | +| `MYSQL_BACKUP_PASS` | | | | โœ“ | โœ“ | +| `MYSQL_BACKUP_HOST` | | | | โœ“ | โœ“ | + + +### โˆ‘ `DEBUG_ENTRYPOINT` + +This variable controls the debug level (verbosity) for the container startup. The more verbose, the more information is shown via docker logs during startup. + +* **Var type:** `int` +* **Default:** `0` +* **Allowed:** `0`, `1`, `2` + +When set to `0` (default), only errors and warnings are shown. +When set to `1`, all log messages are shown. +When set to `2`, all log messages and all commands that are being executed by the entrypoint script are shown. + + +### โˆ‘ `NEW_UID` + +This variable controls the user id of the php-fpm process. + +* **Var type:** `int` +* **Default:** `1000` +* **Allowed:** any valid user id (use your local users' `uid`) + +> **Backgrund:** The php-fpm docker image has a non-root user (and group) that the php-fpm process runs with. When one of your PHP scripts creates a file (cache, uploads, etc), it is being created with the user id and group id, the php-fpm process runs with. In order to make sure this is the same user id as your normal user locally on the host system, this env variable can be used to change the user id inside the container (during startup). +Why can't the php-fpm process run as root? It would then create files with root permissions and as those files are actually on your host system, you would require root permission to access/edit them again. +> +> You can read more about this topic here: [Syncronize file and folder Permissions](syncronize-file-permissions.md). + +You want the PHP-FPM process to run with the same **user id** as the user on your host system. + +What value should I set this to? Open up a terminal on your host system and type **`id -u`** to find out the user id of your local user. + + +### โˆ‘ `NEW_GID` + +This variable controls the group id of the php-fpm process. + +* **Var type:** `int` +* **Default:** `1000` +* **Allowed:** any valid group id (use your local users' `gid`) + +> **Background:** See the section in `NEW_UID` + +You want the PHP-FPM process to run with the same **group id **as the user on your host system. + +What value should I set this to? Open up a terminal on your host system and type **`id -g`** to find out the group id of your local user. + + +### โˆ‘ `TIMEZONE` + +This variable sets the timezone for the container as well as for the PHP-FPM process (via php.ini directives). + +* **Var type:** `string` +* **Default:** `UTC` +* **Allowed:** any valid timezone (e.g.: `Europe/Berlin`) + + +### โˆ‘ `DOCKER_LOGS` + +This variable controls whether PHP access and error logs are written to a log file inside the container or shown via docker logs. + +* **Var type:** `bool` +* **Default:** `1` +* **Allowed:** `0` or `1` + +By default (value: `1`) all Docker images are configured to output their PHP-FPM access and error logs to stdout and stderr, which means it is shown by `docker logs` (or `docker-compose logs`). + +If you want to log into files inside the container instead, change it to `0`. The respective log files are available as Docker volumes and can be mounted to your local file system so you can `cat`, `tail` or `grep` them for anything interesting. + + +### โˆ‘ `ENABLE_MODULES` + +Some PHP extensions are not enabled by default (e.g.: `blackfire`, `ioncube`, `swoole` and others). See [PHP modules](php-modules.md) to find out availalable modules and which are enabled/disabled by default. This variable explicitly enabled PHP modules during startup. + +* **Var type:** comma separated `string` of modules to enable +* **Default:** `` +* **Allowed:** available modules as a commaa separated string + +Example: +```bash +ENABLE_MODULES=swoole +ENABLE_MODULES=swoole,psr,phalcon +``` + +### โˆ‘ `DISABLE_MODULES` + +The PHP-FPM images come with lots of available and default-enabled PHP modules. You might not need all of them. This variable controls which of the modules you want to disable explicitly during startup. + +**Note:** Not all modules can be disabled, as some of them are directly compiled into PHP itself. See [PHP modules](php-modules.md) to find out, which modules can be disabled. + +* **Var type:** comma separated `string` of modules to disabled +* **Default:** `` +* **Allowed:** available modules as a commaa separated string + +Example: +```bash +DISABLE_MODULES=imagick +DISABLE_MODULES=imagick,xdebug +``` + + +### โˆ‘ `ENABLE_MAIL` + +This variable controls whether Postfix (smtpd) should run and how it should behave, when your PHP code sends emails. It can be configured to intercept any outbound send emails and keep them locally, so that you do not accidentally send mails out. + +* **Var type:** `int` +* **Default:** `0` +* **Allowed:** `0`, `1` or `2` + +By default (value: `0`), the Postfix service is disabled and not started locally inside the Docker container. + +When set to `1`, the Postfix service is started normally with its out-of-the-box default configuration. + +When set to `2`, the Postfix service is started and configured for local delivery. That means that all mails sent (even to real existing domains) are intercepted and catched locally. No email will ever leave the system. The emails are then stored in the `devilbox` users' mail file locally in the container. Its directory can also be mounted to your local file system to browse the mails that have been sent. + + +### โˆ‘ `FORWARD_PORTS_TO_LOCALHOST` + +This variable allows you to forward remote ports to `127.0.0.1` into the PHP-FPM docker container. This might be handy if you have another MySQL database container running and still want to be able to use `127.0.0.1` in your PHP configuration for the database host. + +* **Var type:** `string` +* **Default:** `` +* **Allowed:** `::` + +**Note:** You can forward multiple ports by comma separating the allowd forwarding string. + +Forward a remote MySQL database locally to port 3307 +```bash +# Remote MYSQL host/ip: mysqlhost +# Remote MYSQL port: 3306 +# Local port to forward to: 3307 +FORWARD_PORTS_TO_LOCALHOST=3307:mysqlhost:3306 +``` + +Forward a remote MySQL and PostgreSQL locally to port 3307 and 5433 +```bash +# Remote MYSQL host/ip: mysqlhost +# Remote MYSQL port: 3306 +# Local port to forward to: 3307 + +# Remote PGSQL host/ip: pgsqlhost +# Remote PGSQL port: 5432 +# Local port to forward to: 5433 +FORWARD_PORTS_TO_LOCALHOST=3307:mysqlhost:3306, 5433:pgsqlhost:5432 +``` + + +### โˆ‘ `MYSQL_BACKUP_USER` + +You can just type `mysqldump-secure` inside the PHP-FPM container to easily backup your MySQL databases with one command. (See project: https://mysqldump-secure.org/). +In order to do so, you will need to pass a MySQL user to the PHP-FPM container, so it can auto-configure mysqldump-secure for you. + +* **Var type:** `string` +* **Default:** `` +* **Allowed:** valid mysql user name + + +### โˆ‘ `MYSQL_BACKUP_PASS` + +You can just type `mysqldump-secure` inside the PHP-FPM container to easily backup your MySQL databases with one command. (See project: https://mysqldump-secure.org/). +In order to do so, you will need to pass a MySQL password to the PHP-FPM container, so it can auto-configure mysqldump-secure for you. + +* **Var type:** `string` +* **Default:** `` +* **Allowed:** valid mysql password + + +### โˆ‘ `MYSQL_BACKUP_HOST` + +You can just type `mysqldump-secure` inside the PHP-FPM container to easily backup your MySQL databases with one command. (See project: https://mysqldump-secure.org/). +In order to do so, you will need to pass a MySQL hostname to the PHP-FPM container, so it can auto-configure mysqldump-secure for you. + +* **Var type:** `string` +* **Default:** `` +* **Allowed:** valid hostname + +**Note:** The hostname must be reachable from within the PHP-FPM container. diff --git a/doc/docker-volumes.md b/doc/docker-volumes.md index 023d5aca..899627d7 100644 --- a/doc/docker-volumes.md +++ b/doc/docker-volumes.md @@ -17,65 +17,95 @@ Volumes | ### Docker Volumes -Have a look at the following table to see all offered volumes for each Docker image flavour. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ImageVolumesDescription
prod

slim

work
/etc/php-custom.dMount this directory into your host computer and add custom \*.ini files in order to alter php behaviour.
/etc/php-fpm-custom.dMount this directory into your host computer and add custom PHP-FPM \*.conf files in order to alter PHP-FPM behaviour.
/etc/php-modules.dMount this directory into your host computer and add custo \*.so files in order to add your php modules.

Note:Your should then also provide a custom \*.ini file in order to actually load your custom provided module.
/startup.1.dAny executable scripts ending by \*.sh found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run before /startup.2.d)
/startup.2.dAny executable scripts ending by \*.sh found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run after /startup.1.d)
/var/log/phpWhen setting environment variable DOCKER_LOGS to 0, log files will be available under this directory.
/var/mailEmails caught be the postfix catch-all (ENABLE_MAIL=2) will be available in this directory.
/etc/supervisor/custom.dMount this directory into your host computer and add your own `*.conf` supervisor start-up files.

**Note:** Directory and file permission will be recursively set to this of `NEW_UID` and `NEW_GID`.
slim

work
/etc/bashrc-devilbox.dMount this directory into your host computer and add custom configuration files for bash and other tools.
/shared/backupsMount this directory into your host computer to access MySQL backups created by mysqldump-secure.
/caMount this directory into your host computer to bake any *.crt file that is located in there as a trusted SSL entity.
+1. [Overview](#overview) +2. [`/etc/php-custom.d/`][lnk_vol_php_custom] +3. [`/etc/php-fpm-custom.d/`][lnk_vol_php_fpm_custom] +4. [`/startup.1.d/`][lnk_vol_startup1] +5. [`/startup.2.d/`][lnk_vol_startup2] +6. [`/var/log/php/`][lnk_vol_log_php] +7. [`/var/mail/`][lnk_vol_mail] +8. [`/etc/supervisor/custom.d/`][lnk_vol_supervisor] +9. [`/etc/bashrc-devilbox.d/`][lnk_vol_bashrc] +10. [`/shared/backups/`][lnk_vol_backups] +11. [`/ca/`][lnk_vol_ca] + +[lnk_vol_php_custom]: #-etcphp-customd +[lnk_vol_php_fpm_custom]: #-etcphp-fpm-customd +[lnk_vol_startup1]: #-startup1d +[lnk_vol_startup2]: #-startup2d +[lnk_vol_log_php]: #-varlogphp +[lnk_vol_mail]: #-varmail +[lnk_vol_supervisor]: #-etcsupervisorcustomd +[lnk_vol_bashrc]: #-etcbashrc-devilboxd +[lnk_vol_backups]: #-sharedbackups +[lnk_vol_ca]: #-ca + + +### Overview + +The following table gives an overview about which volume is available to which flavour. + +| Docker Volume | `base` | `mods` | `prod` | `slim` | `work` | +|-----------------------------|--------|--------|--------|--------|--------| +| `/etc/php-custom.d/` | | | โœ“ | โœ“ | โœ“ | +| `/etc/php-fpm-custom.d/` | | | โœ“ | โœ“ | โœ“ | +| `/startup.1.d/` | | | โœ“ | โœ“ | โœ“ | +| `/startup.2.d/` | | | โœ“ | โœ“ | โœ“ | +| `/var/log/php/` | | | โœ“ | โœ“ | โœ“ | +| `/var/mail/` | | | โœ“ | โœ“ | โœ“ | +| `/etc/supervisor/custom.d/` | | | โœ“ | โœ“ | โœ“ | +| `/etc/bashrc-devilbox.d/` | | | | โœ“ | โœ“ | +| `/shared/backups/` | | | | โœ“ | โœ“ | +| `/ca/` | | | | โœ“ | โœ“ | + + +### ๐Ÿ“‚ `/etc/php-custom.d/` + +Mount this directory into your host system and add custom PHP `*.ini` files in order to alter PHP behaviour. + + +### ๐Ÿ“‚ `/etc/php-fpm-custom.d/` + +Mount this directory into your host system and add custom PHP-FPM `*.conf` files in order to alter PHP-FPM behaviour. + + +### ๐Ÿ“‚ `/startup.1.d/` + +Any executable scripts ending by `*.sh` found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run before `/startup.2.d`). + + +### ๐Ÿ“‚ `/startup.2.d/` + +Any executable scripts ending by `*.sh` found in this directory will be executed during startup. This is useful to supply additional commands (such as installing custom software) when the container starts up. (will run after `/startup.1.d`). + + +### ๐Ÿ“‚ `/var/log/php/` + +When setting environment variable `DOCKER_LOGS` to `0`, PHP and PHP-FPM log files will be available in this directory. + + +### ๐Ÿ“‚ `/var/mail/` + +Emails caught be the postfix catch-all (`ENABLE_MAIL=2`) will be available in this directory. + + +### ๐Ÿ“‚ `/etc/supervisor/custom.d/` + +Mount this directory into your host computer and add your own `*.conf` supervisor start-up files. + +**Note:** Directory and file permission will be recursively set to this of `NEW_UID` and `NEW_GID`. + + +### ๐Ÿ“‚ `/etc/bashrc-devilbox.d/` + +Mount this directory into your host computer and add custom configuration files for `bash` and other tools. + + +### ๐Ÿ“‚ `/shared/backups/` + +Mount this directory into your host computer to access MySQL backups created by [mysqldump-secure](https://mysqldump-secure.org/). + + +### ๐Ÿ“‚ `/ca/` + +Mount this directory into your host computer to bake any `*.crt` file that is located in there as a trusted SSL entity. diff --git a/doc/flavours.md b/doc/flavours.md index 75f4d7b1..6a843019 100644 --- a/doc/flavours.md +++ b/doc/flavours.md @@ -17,22 +17,22 @@ Flavours | ### Flavours -#### Image: base +#### base Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.
(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) -#### Image: mods +#### mods Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.
(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) -#### Image: prod +#### prod Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting. -#### Image: slim +#### slim Devilbox intranet-ready image. Similar to `prod`, but contains least subset of required cli tools to make the Devilbox intranet work. -#### Image: work +#### work -Devilbox development image. Same as prod, but comes with lots of locally installed tools to make development inside the container as convenient as possible. See [Integrated Development Environment](../README.md#integrated-development-environment) for more information about this. +Devilbox development image. Same as `slim`, but comes with lots of locally installed [tools](available-tools.md) to make development inside the container as convenient as possible. See [Integrated Development Environment](../README.md#integrated-development-environment) for more information about this. diff --git a/doc/php-modules.md b/doc/php-modules.md index 95e13782..34e7e29e 100644 --- a/doc/php-modules.md +++ b/doc/php-modules.md @@ -637,9 +637,9 @@ The following PHP modules are available on the `base` flavour: -### PHP Modules (`mods`, `prod` and `work`) +### PHP Modules (`mods`, `prod`, `slim` and `work`) -The following PHP modules are available on the `mods`, `prod` and `work` flavour: +The following PHP modules are available on the `mods`, `prod`, `slim` and `work` flavour: > :information_source: Click on any extension name to find out what they are diff --git a/doc/php-versions.md b/doc/php-versions.md index f47c9b94..5c8a82e9 100644 --- a/doc/php-versions.md +++ b/doc/php-versions.md @@ -17,18 +17,18 @@ Versions | ### Available PHP versions -| Version | Architecture | Flavours | -|--------------------------|-------------------------|----------| -| :elephant: **`PHP 5.2`** | :computer: amd64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.2), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.2), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.2), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.2) | -| :elephant: **`PHP 5.3`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.3), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.3), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.3), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.3) | -| :elephant: **`PHP 5.4`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.4), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.4), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.4), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.4) | -| :elephant: **`PHP 5.5`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.5), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.5), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.5), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.5) | -| :elephant: **`PHP 5.6`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-5.6), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-5.6), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-5.6), :file_folder: [work](../Dockerfiles/work/Dockerfile-5.6) | -| :elephant: **`PHP 7.0`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.0), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.0), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.0), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.0) | -| :elephant: **`PHP 7.1`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.1), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.1), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.1), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.1) | -| :elephant: **`PHP 7.2`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.2), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.2), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.2), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.2) | -| :elephant: **`PHP 7.3`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.3), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.3), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.3), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.3) | -| :elephant: **`PHP 7.4`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-7.4), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-7.4), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-7.4), :file_folder: [work](../Dockerfiles/work/Dockerfile-7.4) | -| :elephant: **`PHP 8.0`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-8.0), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-8.0), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-8.0), :file_folder: [work](../Dockerfiles/work/Dockerfile-8.0) | -| :elephant: **`PHP 8.1`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-8.1), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-8.1), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-8.1), :file_folder: [work](../Dockerfiles/work/Dockerfile-8.1) | -| :elephant: **`PHP 8.2`** | :computer: amd64, arm64 | :file_folder: [base](../Dockerfiles/base/Dockerfile-8.2), :file_folder: [mods](../Dockerfiles/mods/Dockerfile-8.2), :file_folder: [prod](../Dockerfiles/prod/Dockerfile-8.2), :file_folder: [work](../Dockerfiles/work/Dockerfile-8.2) | +| Version | Architecture | Flavours | +|------------------|-----------------|----------| +| ๐Ÿ˜ **`PHP 5.2`** | ๐Ÿ’ป amd64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-5.2), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-5.2), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.2), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.2), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-5.2) | +| ๐Ÿ˜ **`PHP 5.3`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-5.3), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-5.3), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.3), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.3), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-5.3) | +| ๐Ÿ˜ **`PHP 5.4`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-5.4), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-5.4), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.4), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.4), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-5.4) | +| ๐Ÿ˜ **`PHP 5.5`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-5.5), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-5.5), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.5), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.5), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-5.5) | +| ๐Ÿ˜ **`PHP 5.6`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-5.6), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-5.6), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.6), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-5.6), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-5.6) | +| ๐Ÿ˜ **`PHP 7.0`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-7.0), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-7.0), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.0), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.0), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-7.0) | +| ๐Ÿ˜ **`PHP 7.1`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-7.1), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-7.1), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.1), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.1), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-7.1) | +| ๐Ÿ˜ **`PHP 7.2`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-7.2), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-7.2), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.2), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.2), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-7.2) | +| ๐Ÿ˜ **`PHP 7.3`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-7.3), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-7.3), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.3), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.3), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-7.3) | +| ๐Ÿ˜ **`PHP 7.4`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-7.4), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-7.4), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.4), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-7.4), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-7.4) | +| ๐Ÿ˜ **`PHP 8.0`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-8.0), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-8.0), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-8.0), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-8.0), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-8.0) | +| ๐Ÿ˜ **`PHP 8.1`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-8.1), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-8.1), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-8.1), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-8.1), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-8.1) | +| ๐Ÿ˜ **`PHP 8.2`** | ๐Ÿ’ป amd64, arm64 | ๐Ÿ“‚ [base](../Dockerfiles/base/Dockerfile-8.2), ๐Ÿ“‚ [mods](../Dockerfiles/mods/Dockerfile-8.2), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-8.2), ๐Ÿ“‚ [slim](../Dockerfiles/slim/Dockerfile-8.2), ๐Ÿ“‚ [work](../Dockerfiles/work/Dockerfile-8.2) | From a122d6685d05417e59b0a7b1811bb825068ee345 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 10:54:07 +0100 Subject: [PATCH 02/10] Only build on specific changes --- .github/workflows/action.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/action.yml b/.github/workflows/action.yml index 7756b71e..1f4981d1 100644 --- a/.github/workflows/action.yml +++ b/.github/workflows/action.yml @@ -12,7 +12,29 @@ name: build on: # Push or pull_request will be determined in jobs.configure.enabled push: + paths: + - '.ansible/**' + - '.github/workflows/action.yml' + - '.github/workflows/params.yml' + - 'Dockerfiles/**' + - 'php_modules/**' + - 'php_tools/**' + - 'tests/**' + - 'Makefile' + - '!**.md' + - '!.ansible/ansible.cfg' pull_request: + paths: + - '.ansible/**' + - '.github/workflows/action.yml' + - '.github/workflows/params.yml' + - 'Dockerfiles/**' + - 'php_modules/**' + - 'php_tools/**' + - 'tests/**' + - 'Makefile' + - '!**.md' + - '!.ansible/ansible.cfg' # Dispatch: allows for manual trigger via GH UI workflow_dispatch: From 364c28b248ac2dded59f44758efd952979407ec1 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 11:38:34 +0100 Subject: [PATCH 03/10] Streamline php_modules and php_tools definitions --- bin/gen-php-modules.py | 8 +++--- bin/gen-php-tools.py | 4 +-- ...XT-build.yml.md => PHP-EXT-install.yml.md} | 5 ++-- doc/contributor/PHP-EXT-options.yml.md | 5 ++-- doc/contributor/PHP-EXT-test.yml.md | 27 ------------------- php_modules/amqp/{build.yml => install.yml} | 0 php_modules/amqp/test.yml | 1 - php_modules/apc/{build.yml => install.yml} | 0 php_modules/apc/test.yml | 1 - php_modules/apcu/{build.yml => install.yml} | 0 php_modules/apcu/test.yml | 1 - php_modules/bcmath/{build.yml => install.yml} | 0 php_modules/bcmath/test.yml | 1 - .../blackfire/{build.yml => install.yml} | 0 php_modules/blackfire/test.yml | 1 - php_modules/bz2/{build.yml => install.yml} | 0 php_modules/bz2/test.yml | 1 - .../calendar/{build.yml => install.yml} | 0 php_modules/calendar/test.yml | 1 - php_modules/ctype/{build.yml => install.yml} | 0 php_modules/ctype/test.yml | 1 - php_modules/curl/{build.yml => install.yml} | 0 php_modules/curl/test.yml | 1 - php_modules/date/{build.yml => install.yml} | 0 php_modules/date/test.yml | 1 - php_modules/dba/{build.yml => install.yml} | 0 php_modules/dba/test.yml | 1 - php_modules/dom/{build.yml => install.yml} | 0 php_modules/dom/test.yml | 1 - .../enchant/{build.yml => install.yml} | 0 php_modules/enchant/test.yml | 1 - php_modules/ereg/{build.yml => install.yml} | 0 php_modules/ereg/test.yml | 1 - php_modules/exif/{build.yml => install.yml} | 0 php_modules/exif/test.yml | 1 - php_modules/ffi/{build.yml => install.yml} | 0 php_modules/ffi/test.yml | 1 - .../fileinfo/{build.yml => install.yml} | 0 php_modules/fileinfo/test.yml | 1 - php_modules/filter/{build.yml => install.yml} | 0 php_modules/filter/test.yml | 1 - php_modules/ftp/{build.yml => install.yml} | 0 php_modules/ftp/test.yml | 1 - php_modules/gd/{build.yml => install.yml} | 0 php_modules/gd/test.yml | 1 - .../gettext/{build.yml => install.yml} | 0 php_modules/gettext/test.yml | 1 - php_modules/gmp/{build.yml => install.yml} | 0 php_modules/gmp/test.yml | 1 - php_modules/hash/{build.yml => install.yml} | 0 php_modules/hash/test.yml | 1 - php_modules/iconv/{build.yml => install.yml} | 0 php_modules/iconv/test.yml | 1 - .../igbinary/{build.yml => install.yml} | 0 php_modules/igbinary/test.yml | 1 - .../imagick/{build.yml => install.yml} | 0 php_modules/imagick/test.yml | 1 - php_modules/imap/{build.yml => install.yml} | 0 php_modules/imap/test.yml | 1 - .../interbase/{build.yml => install.yml} | 0 php_modules/interbase/test.yml | 1 - php_modules/intl/{build.yml => install.yml} | 0 php_modules/intl/test.yml | 1 - .../ioncube/{build.yml => install.yml} | 0 php_modules/ioncube/test.yml | 1 - php_modules/json/{build.yml => install.yml} | 0 php_modules/json/test.yml | 1 - php_modules/ldap/{build.yml => install.yml} | 0 php_modules/ldap/test.yml | 1 - php_modules/libxml/{build.yml => install.yml} | 0 php_modules/libxml/test.yml | 1 - php_modules/lz4/{build.yml => install.yml} | 0 php_modules/lz4/test.yml | 1 - php_modules/lzf/{build.yml => install.yml} | 0 php_modules/lzf/test.yml | 1 - .../mbstring/{build.yml => install.yml} | 0 php_modules/mbstring/test.yml | 1 - php_modules/mcrypt/{build.yml => install.yml} | 0 php_modules/mcrypt/test.yml | 1 - .../memcache/{build.yml => install.yml} | 0 php_modules/memcache/test.yml | 1 - .../memcached/{build.yml => install.yml} | 0 php_modules/memcached/test.yml | 1 - php_modules/mhash/{build.yml => install.yml} | 0 php_modules/mhash/test.yml | 1 - php_modules/mongo/{build.yml => install.yml} | 0 php_modules/mongo/test.yml | 1 - .../mongodb/{build.yml => install.yml} | 0 php_modules/mongodb/test.yml | 1 - .../msgpack/{build.yml => install.yml} | 0 php_modules/msgpack/test.yml | 1 - php_modules/mysql/{build.yml => install.yml} | 0 php_modules/mysql/test.yml | 1 - php_modules/mysqli/{build.yml => install.yml} | 0 php_modules/mysqli/test.yml | 1 - .../mysqlnd/{build.yml => install.yml} | 0 php_modules/mysqlnd/test.yml | 1 - php_modules/oauth/{build.yml => install.yml} | 0 php_modules/oauth/test.yml | 1 - php_modules/oci8/{build.yml => install.yml} | 0 php_modules/oci8/test.yml | 1 - php_modules/odbc/{build.yml => install.yml} | 0 php_modules/odbc/test.yml | 1 - .../opcache/{build.yml => install.yml} | 0 php_modules/opcache/test.yml | 1 - .../openssl/{build.yml => install.yml} | 0 php_modules/openssl/test.yml | 1 - php_modules/pcntl/{build.yml => install.yml} | 0 php_modules/pcntl/test.yml | 1 - php_modules/pcre/{build.yml => install.yml} | 0 php_modules/pcre/test.yml | 1 - php_modules/pdo/{build.yml => install.yml} | 0 php_modules/pdo/test.yml | 1 - .../pdo_dblib/{build.yml => install.yml} | 0 php_modules/pdo_dblib/test.yml | 1 - .../pdo_firebird/{build.yml => install.yml} | 0 php_modules/pdo_firebird/test.yml | 1 - .../pdo_mysql/{build.yml => install.yml} | 0 php_modules/pdo_mysql/test.yml | 1 - .../pdo_oci/{build.yml => install.yml} | 0 php_modules/pdo_oci/test.yml | 1 - .../pdo_odbc/{build.yml => install.yml} | 0 php_modules/pdo_odbc/test.yml | 1 - .../pdo_pgsql/{build.yml => install.yml} | 0 php_modules/pdo_pgsql/test.yml | 1 - .../pdo_sqlite/{build.yml => install.yml} | 0 php_modules/pdo_sqlite/test.yml | 1 - .../pdo_sqlsrv/{build.yml => install.yml} | 0 php_modules/pdo_sqlsrv/test.yml | 1 - php_modules/pgsql/{build.yml => install.yml} | 0 php_modules/pgsql/test.yml | 1 - .../phalcon/{build.yml => install.yml} | 0 php_modules/phalcon/test.yml | 1 - php_modules/phar/{build.yml => install.yml} | 0 php_modules/phar/test.yml | 1 - php_modules/posix/{build.yml => install.yml} | 0 php_modules/posix/test.yml | 1 - php_modules/pspell/{build.yml => install.yml} | 0 php_modules/pspell/test.yml | 1 - php_modules/psr/{build.yml => install.yml} | 0 php_modules/psr/test.yml | 1 - php_modules/random/{build.yml => install.yml} | 0 php_modules/random/test.yml | 1 - .../rdkafka/{build.yml => install.yml} | 0 php_modules/rdkafka/test.yml | 1 - .../readline/{build.yml => install.yml} | 0 php_modules/readline/test.yml | 1 - php_modules/recode/{build.yml => install.yml} | 0 php_modules/recode/test.yml | 1 - php_modules/redis/{build.yml => install.yml} | 0 php_modules/redis/test.yml | 1 - .../reflection/{build.yml => install.yml} | 0 php_modules/reflection/test.yml | 1 - .../session/{build.yml => install.yml} | 0 php_modules/session/test.yml | 1 - php_modules/shmop/{build.yml => install.yml} | 0 php_modules/shmop/test.yml | 1 - .../simplexml/{build.yml => install.yml} | 0 php_modules/simplexml/test.yml | 1 - php_modules/snmp/{build.yml => install.yml} | 0 php_modules/snmp/test.yml | 1 - php_modules/soap/{build.yml => install.yml} | 0 php_modules/soap/test.yml | 1 - .../sockets/{build.yml => install.yml} | 0 php_modules/sockets/test.yml | 1 - php_modules/sodium/{build.yml => install.yml} | 0 php_modules/sodium/test.yml | 1 - php_modules/solr/{build.yml => install.yml} | 0 php_modules/solr/test.yml | 1 - php_modules/spl/{build.yml => install.yml} | 0 php_modules/spl/test.yml | 1 - php_modules/sqlite/{build.yml => install.yml} | 0 php_modules/sqlite/test.yml | 1 - .../sqlite3/{build.yml => install.yml} | 0 php_modules/sqlite3/test.yml | 1 - php_modules/sqlsrv/{build.yml => install.yml} | 0 php_modules/sqlsrv/test.yml | 1 - php_modules/ssh2/{build.yml => install.yml} | 0 php_modules/ssh2/test.yml | 1 - php_modules/swoole/{build.yml => install.yml} | 0 php_modules/swoole/test.yml | 1 - .../sysvmsg/{build.yml => install.yml} | 0 php_modules/sysvmsg/test.yml | 1 - .../sysvsem/{build.yml => install.yml} | 0 php_modules/sysvsem/test.yml | 1 - .../sysvshm/{build.yml => install.yml} | 0 php_modules/sysvshm/test.yml | 1 - php_modules/tidy/{build.yml => install.yml} | 0 php_modules/tidy/test.yml | 1 - .../tokenizer/{build.yml => install.yml} | 0 php_modules/tokenizer/test.yml | 1 - .../uploadprogress/{build.yml => install.yml} | 0 php_modules/uploadprogress/test.yml | 1 - php_modules/uuid/{build.yml => install.yml} | 0 php_modules/uuid/test.yml | 1 - php_modules/vips/{build.yml => install.yml} | 0 php_modules/vips/test.yml | 1 - php_modules/wddx/{build.yml => install.yml} | 0 php_modules/wddx/test.yml | 1 - php_modules/xdebug/{build.yml => install.yml} | 0 php_modules/xdebug/test.yml | 1 - .../xlswriter/{build.yml => install.yml} | 0 php_modules/xlswriter/test.yml | 1 - php_modules/xml/{build.yml => install.yml} | 0 php_modules/xml/test.yml | 1 - .../xmlreader/{build.yml => install.yml} | 0 php_modules/xmlreader/test.yml | 1 - php_modules/xmlrpc/{build.yml => install.yml} | 0 php_modules/xmlrpc/test.yml | 1 - .../xmlwriter/{build.yml => install.yml} | 0 php_modules/xmlwriter/test.yml | 1 - php_modules/xsl/{build.yml => install.yml} | 0 php_modules/xsl/test.yml | 1 - php_modules/yaml/{build.yml => install.yml} | 0 php_modules/yaml/test.yml | 1 - php_modules/zip/{build.yml => install.yml} | 0 php_modules/zip/test.yml | 1 - php_modules/zlib/{build.yml => install.yml} | 0 php_modules/zlib/test.yml | 1 - php_modules/zstd/{build.yml => install.yml} | 0 php_modules/zstd/test.yml | 1 - 221 files changed, 10 insertions(+), 147 deletions(-) rename doc/contributor/{PHP-EXT-build.yml.md => PHP-EXT-install.yml.md} (98%) delete mode 100644 doc/contributor/PHP-EXT-test.yml.md rename php_modules/amqp/{build.yml => install.yml} (100%) delete mode 100644 php_modules/amqp/test.yml rename php_modules/apc/{build.yml => install.yml} (100%) delete mode 100644 php_modules/apc/test.yml rename php_modules/apcu/{build.yml => install.yml} (100%) delete mode 100644 php_modules/apcu/test.yml rename php_modules/bcmath/{build.yml => install.yml} (100%) delete mode 100644 php_modules/bcmath/test.yml rename php_modules/blackfire/{build.yml => install.yml} (100%) delete mode 100644 php_modules/blackfire/test.yml rename php_modules/bz2/{build.yml => install.yml} (100%) delete mode 100644 php_modules/bz2/test.yml rename php_modules/calendar/{build.yml => install.yml} (100%) delete mode 100644 php_modules/calendar/test.yml rename php_modules/ctype/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ctype/test.yml rename php_modules/curl/{build.yml => install.yml} (100%) delete mode 100644 php_modules/curl/test.yml rename php_modules/date/{build.yml => install.yml} (100%) delete mode 100644 php_modules/date/test.yml rename php_modules/dba/{build.yml => install.yml} (100%) delete mode 100644 php_modules/dba/test.yml rename php_modules/dom/{build.yml => install.yml} (100%) delete mode 100644 php_modules/dom/test.yml rename php_modules/enchant/{build.yml => install.yml} (100%) delete mode 100644 php_modules/enchant/test.yml rename php_modules/ereg/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ereg/test.yml rename php_modules/exif/{build.yml => install.yml} (100%) delete mode 100644 php_modules/exif/test.yml rename php_modules/ffi/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ffi/test.yml rename php_modules/fileinfo/{build.yml => install.yml} (100%) delete mode 100644 php_modules/fileinfo/test.yml rename php_modules/filter/{build.yml => install.yml} (100%) delete mode 100644 php_modules/filter/test.yml rename php_modules/ftp/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ftp/test.yml rename php_modules/gd/{build.yml => install.yml} (100%) delete mode 100644 php_modules/gd/test.yml rename php_modules/gettext/{build.yml => install.yml} (100%) delete mode 100644 php_modules/gettext/test.yml rename php_modules/gmp/{build.yml => install.yml} (100%) delete mode 100644 php_modules/gmp/test.yml rename php_modules/hash/{build.yml => install.yml} (100%) delete mode 100644 php_modules/hash/test.yml rename php_modules/iconv/{build.yml => install.yml} (100%) delete mode 100644 php_modules/iconv/test.yml rename php_modules/igbinary/{build.yml => install.yml} (100%) delete mode 100644 php_modules/igbinary/test.yml rename php_modules/imagick/{build.yml => install.yml} (100%) delete mode 100644 php_modules/imagick/test.yml rename php_modules/imap/{build.yml => install.yml} (100%) delete mode 100644 php_modules/imap/test.yml rename php_modules/interbase/{build.yml => install.yml} (100%) delete mode 100644 php_modules/interbase/test.yml rename php_modules/intl/{build.yml => install.yml} (100%) delete mode 100644 php_modules/intl/test.yml rename php_modules/ioncube/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ioncube/test.yml rename php_modules/json/{build.yml => install.yml} (100%) delete mode 100644 php_modules/json/test.yml rename php_modules/ldap/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ldap/test.yml rename php_modules/libxml/{build.yml => install.yml} (100%) delete mode 100644 php_modules/libxml/test.yml rename php_modules/lz4/{build.yml => install.yml} (100%) delete mode 100644 php_modules/lz4/test.yml rename php_modules/lzf/{build.yml => install.yml} (100%) delete mode 100644 php_modules/lzf/test.yml rename php_modules/mbstring/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mbstring/test.yml rename php_modules/mcrypt/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mcrypt/test.yml rename php_modules/memcache/{build.yml => install.yml} (100%) delete mode 100644 php_modules/memcache/test.yml rename php_modules/memcached/{build.yml => install.yml} (100%) delete mode 100644 php_modules/memcached/test.yml rename php_modules/mhash/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mhash/test.yml rename php_modules/mongo/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mongo/test.yml rename php_modules/mongodb/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mongodb/test.yml rename php_modules/msgpack/{build.yml => install.yml} (100%) delete mode 100644 php_modules/msgpack/test.yml rename php_modules/mysql/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mysql/test.yml rename php_modules/mysqli/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mysqli/test.yml rename php_modules/mysqlnd/{build.yml => install.yml} (100%) delete mode 100644 php_modules/mysqlnd/test.yml rename php_modules/oauth/{build.yml => install.yml} (100%) delete mode 100644 php_modules/oauth/test.yml rename php_modules/oci8/{build.yml => install.yml} (100%) delete mode 100644 php_modules/oci8/test.yml rename php_modules/odbc/{build.yml => install.yml} (100%) delete mode 100644 php_modules/odbc/test.yml rename php_modules/opcache/{build.yml => install.yml} (100%) delete mode 100644 php_modules/opcache/test.yml rename php_modules/openssl/{build.yml => install.yml} (100%) delete mode 100644 php_modules/openssl/test.yml rename php_modules/pcntl/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pcntl/test.yml rename php_modules/pcre/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pcre/test.yml rename php_modules/pdo/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo/test.yml rename php_modules/pdo_dblib/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_dblib/test.yml rename php_modules/pdo_firebird/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_firebird/test.yml rename php_modules/pdo_mysql/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_mysql/test.yml rename php_modules/pdo_oci/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_oci/test.yml rename php_modules/pdo_odbc/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_odbc/test.yml rename php_modules/pdo_pgsql/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_pgsql/test.yml rename php_modules/pdo_sqlite/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_sqlite/test.yml rename php_modules/pdo_sqlsrv/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pdo_sqlsrv/test.yml rename php_modules/pgsql/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pgsql/test.yml rename php_modules/phalcon/{build.yml => install.yml} (100%) delete mode 100644 php_modules/phalcon/test.yml rename php_modules/phar/{build.yml => install.yml} (100%) delete mode 100644 php_modules/phar/test.yml rename php_modules/posix/{build.yml => install.yml} (100%) delete mode 100644 php_modules/posix/test.yml rename php_modules/pspell/{build.yml => install.yml} (100%) delete mode 100644 php_modules/pspell/test.yml rename php_modules/psr/{build.yml => install.yml} (100%) delete mode 100644 php_modules/psr/test.yml rename php_modules/random/{build.yml => install.yml} (100%) delete mode 100644 php_modules/random/test.yml rename php_modules/rdkafka/{build.yml => install.yml} (100%) delete mode 100644 php_modules/rdkafka/test.yml rename php_modules/readline/{build.yml => install.yml} (100%) delete mode 100644 php_modules/readline/test.yml rename php_modules/recode/{build.yml => install.yml} (100%) delete mode 100644 php_modules/recode/test.yml rename php_modules/redis/{build.yml => install.yml} (100%) delete mode 100644 php_modules/redis/test.yml rename php_modules/reflection/{build.yml => install.yml} (100%) delete mode 100644 php_modules/reflection/test.yml rename php_modules/session/{build.yml => install.yml} (100%) delete mode 100644 php_modules/session/test.yml rename php_modules/shmop/{build.yml => install.yml} (100%) delete mode 100644 php_modules/shmop/test.yml rename php_modules/simplexml/{build.yml => install.yml} (100%) delete mode 100644 php_modules/simplexml/test.yml rename php_modules/snmp/{build.yml => install.yml} (100%) delete mode 100644 php_modules/snmp/test.yml rename php_modules/soap/{build.yml => install.yml} (100%) delete mode 100644 php_modules/soap/test.yml rename php_modules/sockets/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sockets/test.yml rename php_modules/sodium/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sodium/test.yml rename php_modules/solr/{build.yml => install.yml} (100%) delete mode 100644 php_modules/solr/test.yml rename php_modules/spl/{build.yml => install.yml} (100%) delete mode 100644 php_modules/spl/test.yml rename php_modules/sqlite/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sqlite/test.yml rename php_modules/sqlite3/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sqlite3/test.yml rename php_modules/sqlsrv/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sqlsrv/test.yml rename php_modules/ssh2/{build.yml => install.yml} (100%) delete mode 100644 php_modules/ssh2/test.yml rename php_modules/swoole/{build.yml => install.yml} (100%) delete mode 100644 php_modules/swoole/test.yml rename php_modules/sysvmsg/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sysvmsg/test.yml rename php_modules/sysvsem/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sysvsem/test.yml rename php_modules/sysvshm/{build.yml => install.yml} (100%) delete mode 100644 php_modules/sysvshm/test.yml rename php_modules/tidy/{build.yml => install.yml} (100%) delete mode 100644 php_modules/tidy/test.yml rename php_modules/tokenizer/{build.yml => install.yml} (100%) delete mode 100644 php_modules/tokenizer/test.yml rename php_modules/uploadprogress/{build.yml => install.yml} (100%) delete mode 100644 php_modules/uploadprogress/test.yml rename php_modules/uuid/{build.yml => install.yml} (100%) delete mode 100644 php_modules/uuid/test.yml rename php_modules/vips/{build.yml => install.yml} (100%) delete mode 100644 php_modules/vips/test.yml rename php_modules/wddx/{build.yml => install.yml} (100%) delete mode 100644 php_modules/wddx/test.yml rename php_modules/xdebug/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xdebug/test.yml rename php_modules/xlswriter/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xlswriter/test.yml rename php_modules/xml/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xml/test.yml rename php_modules/xmlreader/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xmlreader/test.yml rename php_modules/xmlrpc/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xmlrpc/test.yml rename php_modules/xmlwriter/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xmlwriter/test.yml rename php_modules/xsl/{build.yml => install.yml} (100%) delete mode 100644 php_modules/xsl/test.yml rename php_modules/yaml/{build.yml => install.yml} (100%) delete mode 100644 php_modules/yaml/test.yml rename php_modules/zip/{build.yml => install.yml} (100%) delete mode 100644 php_modules/zip/test.yml rename php_modules/zlib/{build.yml => install.yml} (100%) delete mode 100644 php_modules/zlib/test.yml rename php_modules/zstd/{build.yml => install.yml} (100%) delete mode 100644 php_modules/zstd/test.yml diff --git a/bin/gen-php-modules.py b/bin/gen-php-modules.py index 97a5ed1b..4c43c8c5 100755 --- a/bin/gen-php-modules.py +++ b/bin/gen-php-modules.py @@ -64,9 +64,9 @@ def get_module_options(module_dirname: str) -> Dict[str, Any]: return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "options.yml")) -def get_module_build(module_dirname: str) -> Dict[str, Any]: - """Returns yaml dict build configuration of a PHP module given by its absolute file path.""" - return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "build.yml")) +def get_module_install(module_dirname: str) -> Dict[str, Any]: + """Returns yaml dict install configuration of a PHP module given by its absolute file path.""" + return load_yaml(os.path.join(PHP_MODULE_PATH, module_dirname, "install.yml")) def get_module_test(module_dirname: str) -> Dict[str, Any]: @@ -196,7 +196,7 @@ def write_group_vars(modules: List[str]) -> None: opts = get_module_options(module) fp.write(" " + module + ":\n") fp.write(" disabled: [" + ", ".join(str(x) for x in opts["exclude"]) + "]\n") - fp.write(load_yaml_raw(os.path.join(PHP_MODULE_PATH, module, "build.yml"), 4)) + fp.write(load_yaml_raw(os.path.join(PHP_MODULE_PATH, module, "install.yml"), 4)) # -------------------------------------------------------------------------------------------------- diff --git a/bin/gen-php-tools.py b/bin/gen-php-tools.py index 537607b8..7f231619 100755 --- a/bin/gen-php-tools.py +++ b/bin/gen-php-tools.py @@ -64,8 +64,8 @@ def get_tool_options(tool_dirname: str) -> Dict[str, Any]: return load_yaml(os.path.join(PHP_TOOL_PATH, tool_dirname, "options.yml")) -def get_tool_build(tool_dirname: str) -> Dict[str, Any]: - """Returns yaml dict build configuration of a PHP tool given by its absolute file path.""" +def get_tool_install(tool_dirname: str) -> Dict[str, Any]: + """Returns yaml dict install configuration of a PHP tool given by its absolute file path.""" return load_yaml(os.path.join(PHP_TOOL_PATH, tool_dirname, "install.yml")) diff --git a/doc/contributor/PHP-EXT-build.yml.md b/doc/contributor/PHP-EXT-install.yml.md similarity index 98% rename from doc/contributor/PHP-EXT-build.yml.md rename to doc/contributor/PHP-EXT-install.yml.md index 83def9b7..5d9c7f27 100644 --- a/doc/contributor/PHP-EXT-build.yml.md +++ b/doc/contributor/PHP-EXT-install.yml.md @@ -1,7 +1,6 @@ [PHP Mods: Overview](../../php_modules/README.md) | [PHP Mods: `options.yml`](PHP-EXT-options.yml.md) | -PHP Mods: `build.yml` | -[PHP Mods: `test.yml`](PHP-EXT-test.yml.md) +PHP Mods: `install.yml` --- @@ -9,7 +8,7 @@ PHP Mods: `build.yml` | -# Extension definition: `build.yml` +# Extension definition: `install.yml` ## Top level defines diff --git a/doc/contributor/PHP-EXT-options.yml.md b/doc/contributor/PHP-EXT-options.yml.md index ad190b0f..ddb0b4af 100644 --- a/doc/contributor/PHP-EXT-options.yml.md +++ b/doc/contributor/PHP-EXT-options.yml.md @@ -1,7 +1,6 @@ [PHP Mods: Overview](../../php_modules/README.md) | PHP Mods: `options.yml` | -[PHP Mods: `build.yml`](PHP-EXT-build.yml.md) | -[PHP Mods: `test.yml`](PHP-EXT-test.yml.md) +[PHP Mods: `install.yml`](PHP-EXT-install.yml.md) --- @@ -36,7 +35,7 @@ Example: exclude: [5.2, 5.3] ``` -**Note:** If this extension is already present, do not exclude it in here, but rather use `already_avail` in `build.yml`. +**Note:** If this extension is already present, do not exclude it in here, but rather use `already_avail` in `install.yml`. ### `depends_build` diff --git a/doc/contributor/PHP-EXT-test.yml.md b/doc/contributor/PHP-EXT-test.yml.md deleted file mode 100644 index 79462821..00000000 --- a/doc/contributor/PHP-EXT-test.yml.md +++ /dev/null @@ -1,27 +0,0 @@ -[PHP Mods: Overview](../../php_modules/README.md) | -[PHP Mods: `options.yml`](PHP-EXT-options.yml.md) | -[PHP Mods: `build.yml`](PHP-EXT-build.yml.md) | -PHP Mods: `test.yml` - ---- - -

Contributor Documentation: PHP Modules

- - - -# Extension definition: `test.yml` - -### Goal -The goal of these tests will be to ensure that each compiled module works as expected: -* Required system libraries are present -* Module has been loaded in correct order -* Module works properly - -This will be accomplished by providing example PHP code, which makes calls to functions of the respective module. The tests will then check PHP error logs, stderr, unforseen exits and segfaults for potential errors. - -Currently some basic tests already exist or a few modules **[here](../../tests/mods/modules)**. - - -### Configuration - -This is not yet implemented and thus no documentation exists. diff --git a/php_modules/amqp/build.yml b/php_modules/amqp/install.yml similarity index 100% rename from php_modules/amqp/build.yml rename to php_modules/amqp/install.yml diff --git a/php_modules/amqp/test.yml b/php_modules/amqp/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/amqp/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/apc/build.yml b/php_modules/apc/install.yml similarity index 100% rename from php_modules/apc/build.yml rename to php_modules/apc/install.yml diff --git a/php_modules/apc/test.yml b/php_modules/apc/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/apc/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/apcu/build.yml b/php_modules/apcu/install.yml similarity index 100% rename from php_modules/apcu/build.yml rename to php_modules/apcu/install.yml diff --git a/php_modules/apcu/test.yml b/php_modules/apcu/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/apcu/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/bcmath/build.yml b/php_modules/bcmath/install.yml similarity index 100% rename from php_modules/bcmath/build.yml rename to php_modules/bcmath/install.yml diff --git a/php_modules/bcmath/test.yml b/php_modules/bcmath/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/bcmath/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/blackfire/build.yml b/php_modules/blackfire/install.yml similarity index 100% rename from php_modules/blackfire/build.yml rename to php_modules/blackfire/install.yml diff --git a/php_modules/blackfire/test.yml b/php_modules/blackfire/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/blackfire/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/bz2/build.yml b/php_modules/bz2/install.yml similarity index 100% rename from php_modules/bz2/build.yml rename to php_modules/bz2/install.yml diff --git a/php_modules/bz2/test.yml b/php_modules/bz2/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/bz2/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/calendar/build.yml b/php_modules/calendar/install.yml similarity index 100% rename from php_modules/calendar/build.yml rename to php_modules/calendar/install.yml diff --git a/php_modules/calendar/test.yml b/php_modules/calendar/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/calendar/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ctype/build.yml b/php_modules/ctype/install.yml similarity index 100% rename from php_modules/ctype/build.yml rename to php_modules/ctype/install.yml diff --git a/php_modules/ctype/test.yml b/php_modules/ctype/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ctype/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/curl/build.yml b/php_modules/curl/install.yml similarity index 100% rename from php_modules/curl/build.yml rename to php_modules/curl/install.yml diff --git a/php_modules/curl/test.yml b/php_modules/curl/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/curl/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/date/build.yml b/php_modules/date/install.yml similarity index 100% rename from php_modules/date/build.yml rename to php_modules/date/install.yml diff --git a/php_modules/date/test.yml b/php_modules/date/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/date/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/dba/build.yml b/php_modules/dba/install.yml similarity index 100% rename from php_modules/dba/build.yml rename to php_modules/dba/install.yml diff --git a/php_modules/dba/test.yml b/php_modules/dba/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/dba/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/dom/build.yml b/php_modules/dom/install.yml similarity index 100% rename from php_modules/dom/build.yml rename to php_modules/dom/install.yml diff --git a/php_modules/dom/test.yml b/php_modules/dom/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/dom/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/enchant/build.yml b/php_modules/enchant/install.yml similarity index 100% rename from php_modules/enchant/build.yml rename to php_modules/enchant/install.yml diff --git a/php_modules/enchant/test.yml b/php_modules/enchant/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/enchant/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ereg/build.yml b/php_modules/ereg/install.yml similarity index 100% rename from php_modules/ereg/build.yml rename to php_modules/ereg/install.yml diff --git a/php_modules/ereg/test.yml b/php_modules/ereg/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ereg/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/exif/build.yml b/php_modules/exif/install.yml similarity index 100% rename from php_modules/exif/build.yml rename to php_modules/exif/install.yml diff --git a/php_modules/exif/test.yml b/php_modules/exif/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/exif/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ffi/build.yml b/php_modules/ffi/install.yml similarity index 100% rename from php_modules/ffi/build.yml rename to php_modules/ffi/install.yml diff --git a/php_modules/ffi/test.yml b/php_modules/ffi/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ffi/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/fileinfo/build.yml b/php_modules/fileinfo/install.yml similarity index 100% rename from php_modules/fileinfo/build.yml rename to php_modules/fileinfo/install.yml diff --git a/php_modules/fileinfo/test.yml b/php_modules/fileinfo/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/fileinfo/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/filter/build.yml b/php_modules/filter/install.yml similarity index 100% rename from php_modules/filter/build.yml rename to php_modules/filter/install.yml diff --git a/php_modules/filter/test.yml b/php_modules/filter/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/filter/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ftp/build.yml b/php_modules/ftp/install.yml similarity index 100% rename from php_modules/ftp/build.yml rename to php_modules/ftp/install.yml diff --git a/php_modules/ftp/test.yml b/php_modules/ftp/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ftp/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/gd/build.yml b/php_modules/gd/install.yml similarity index 100% rename from php_modules/gd/build.yml rename to php_modules/gd/install.yml diff --git a/php_modules/gd/test.yml b/php_modules/gd/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/gd/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/gettext/build.yml b/php_modules/gettext/install.yml similarity index 100% rename from php_modules/gettext/build.yml rename to php_modules/gettext/install.yml diff --git a/php_modules/gettext/test.yml b/php_modules/gettext/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/gettext/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/gmp/build.yml b/php_modules/gmp/install.yml similarity index 100% rename from php_modules/gmp/build.yml rename to php_modules/gmp/install.yml diff --git a/php_modules/gmp/test.yml b/php_modules/gmp/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/gmp/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/hash/build.yml b/php_modules/hash/install.yml similarity index 100% rename from php_modules/hash/build.yml rename to php_modules/hash/install.yml diff --git a/php_modules/hash/test.yml b/php_modules/hash/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/hash/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/iconv/build.yml b/php_modules/iconv/install.yml similarity index 100% rename from php_modules/iconv/build.yml rename to php_modules/iconv/install.yml diff --git a/php_modules/iconv/test.yml b/php_modules/iconv/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/iconv/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/igbinary/build.yml b/php_modules/igbinary/install.yml similarity index 100% rename from php_modules/igbinary/build.yml rename to php_modules/igbinary/install.yml diff --git a/php_modules/igbinary/test.yml b/php_modules/igbinary/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/igbinary/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/imagick/build.yml b/php_modules/imagick/install.yml similarity index 100% rename from php_modules/imagick/build.yml rename to php_modules/imagick/install.yml diff --git a/php_modules/imagick/test.yml b/php_modules/imagick/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/imagick/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/imap/build.yml b/php_modules/imap/install.yml similarity index 100% rename from php_modules/imap/build.yml rename to php_modules/imap/install.yml diff --git a/php_modules/imap/test.yml b/php_modules/imap/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/imap/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/interbase/build.yml b/php_modules/interbase/install.yml similarity index 100% rename from php_modules/interbase/build.yml rename to php_modules/interbase/install.yml diff --git a/php_modules/interbase/test.yml b/php_modules/interbase/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/interbase/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/intl/build.yml b/php_modules/intl/install.yml similarity index 100% rename from php_modules/intl/build.yml rename to php_modules/intl/install.yml diff --git a/php_modules/intl/test.yml b/php_modules/intl/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/intl/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ioncube/build.yml b/php_modules/ioncube/install.yml similarity index 100% rename from php_modules/ioncube/build.yml rename to php_modules/ioncube/install.yml diff --git a/php_modules/ioncube/test.yml b/php_modules/ioncube/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ioncube/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/json/build.yml b/php_modules/json/install.yml similarity index 100% rename from php_modules/json/build.yml rename to php_modules/json/install.yml diff --git a/php_modules/json/test.yml b/php_modules/json/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/json/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ldap/build.yml b/php_modules/ldap/install.yml similarity index 100% rename from php_modules/ldap/build.yml rename to php_modules/ldap/install.yml diff --git a/php_modules/ldap/test.yml b/php_modules/ldap/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ldap/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/libxml/build.yml b/php_modules/libxml/install.yml similarity index 100% rename from php_modules/libxml/build.yml rename to php_modules/libxml/install.yml diff --git a/php_modules/libxml/test.yml b/php_modules/libxml/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/libxml/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/lz4/build.yml b/php_modules/lz4/install.yml similarity index 100% rename from php_modules/lz4/build.yml rename to php_modules/lz4/install.yml diff --git a/php_modules/lz4/test.yml b/php_modules/lz4/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/lz4/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/lzf/build.yml b/php_modules/lzf/install.yml similarity index 100% rename from php_modules/lzf/build.yml rename to php_modules/lzf/install.yml diff --git a/php_modules/lzf/test.yml b/php_modules/lzf/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/lzf/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mbstring/build.yml b/php_modules/mbstring/install.yml similarity index 100% rename from php_modules/mbstring/build.yml rename to php_modules/mbstring/install.yml diff --git a/php_modules/mbstring/test.yml b/php_modules/mbstring/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mbstring/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mcrypt/build.yml b/php_modules/mcrypt/install.yml similarity index 100% rename from php_modules/mcrypt/build.yml rename to php_modules/mcrypt/install.yml diff --git a/php_modules/mcrypt/test.yml b/php_modules/mcrypt/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mcrypt/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/memcache/build.yml b/php_modules/memcache/install.yml similarity index 100% rename from php_modules/memcache/build.yml rename to php_modules/memcache/install.yml diff --git a/php_modules/memcache/test.yml b/php_modules/memcache/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/memcache/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/memcached/build.yml b/php_modules/memcached/install.yml similarity index 100% rename from php_modules/memcached/build.yml rename to php_modules/memcached/install.yml diff --git a/php_modules/memcached/test.yml b/php_modules/memcached/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/memcached/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mhash/build.yml b/php_modules/mhash/install.yml similarity index 100% rename from php_modules/mhash/build.yml rename to php_modules/mhash/install.yml diff --git a/php_modules/mhash/test.yml b/php_modules/mhash/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mhash/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mongo/build.yml b/php_modules/mongo/install.yml similarity index 100% rename from php_modules/mongo/build.yml rename to php_modules/mongo/install.yml diff --git a/php_modules/mongo/test.yml b/php_modules/mongo/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mongo/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mongodb/build.yml b/php_modules/mongodb/install.yml similarity index 100% rename from php_modules/mongodb/build.yml rename to php_modules/mongodb/install.yml diff --git a/php_modules/mongodb/test.yml b/php_modules/mongodb/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mongodb/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/msgpack/build.yml b/php_modules/msgpack/install.yml similarity index 100% rename from php_modules/msgpack/build.yml rename to php_modules/msgpack/install.yml diff --git a/php_modules/msgpack/test.yml b/php_modules/msgpack/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/msgpack/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mysql/build.yml b/php_modules/mysql/install.yml similarity index 100% rename from php_modules/mysql/build.yml rename to php_modules/mysql/install.yml diff --git a/php_modules/mysql/test.yml b/php_modules/mysql/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mysql/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mysqli/build.yml b/php_modules/mysqli/install.yml similarity index 100% rename from php_modules/mysqli/build.yml rename to php_modules/mysqli/install.yml diff --git a/php_modules/mysqli/test.yml b/php_modules/mysqli/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mysqli/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/mysqlnd/build.yml b/php_modules/mysqlnd/install.yml similarity index 100% rename from php_modules/mysqlnd/build.yml rename to php_modules/mysqlnd/install.yml diff --git a/php_modules/mysqlnd/test.yml b/php_modules/mysqlnd/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/mysqlnd/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/oauth/build.yml b/php_modules/oauth/install.yml similarity index 100% rename from php_modules/oauth/build.yml rename to php_modules/oauth/install.yml diff --git a/php_modules/oauth/test.yml b/php_modules/oauth/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/oauth/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/oci8/build.yml b/php_modules/oci8/install.yml similarity index 100% rename from php_modules/oci8/build.yml rename to php_modules/oci8/install.yml diff --git a/php_modules/oci8/test.yml b/php_modules/oci8/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/oci8/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/odbc/build.yml b/php_modules/odbc/install.yml similarity index 100% rename from php_modules/odbc/build.yml rename to php_modules/odbc/install.yml diff --git a/php_modules/odbc/test.yml b/php_modules/odbc/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/odbc/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/opcache/build.yml b/php_modules/opcache/install.yml similarity index 100% rename from php_modules/opcache/build.yml rename to php_modules/opcache/install.yml diff --git a/php_modules/opcache/test.yml b/php_modules/opcache/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/opcache/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/openssl/build.yml b/php_modules/openssl/install.yml similarity index 100% rename from php_modules/openssl/build.yml rename to php_modules/openssl/install.yml diff --git a/php_modules/openssl/test.yml b/php_modules/openssl/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/openssl/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pcntl/build.yml b/php_modules/pcntl/install.yml similarity index 100% rename from php_modules/pcntl/build.yml rename to php_modules/pcntl/install.yml diff --git a/php_modules/pcntl/test.yml b/php_modules/pcntl/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pcntl/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pcre/build.yml b/php_modules/pcre/install.yml similarity index 100% rename from php_modules/pcre/build.yml rename to php_modules/pcre/install.yml diff --git a/php_modules/pcre/test.yml b/php_modules/pcre/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pcre/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo/build.yml b/php_modules/pdo/install.yml similarity index 100% rename from php_modules/pdo/build.yml rename to php_modules/pdo/install.yml diff --git a/php_modules/pdo/test.yml b/php_modules/pdo/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_dblib/build.yml b/php_modules/pdo_dblib/install.yml similarity index 100% rename from php_modules/pdo_dblib/build.yml rename to php_modules/pdo_dblib/install.yml diff --git a/php_modules/pdo_dblib/test.yml b/php_modules/pdo_dblib/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_dblib/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_firebird/build.yml b/php_modules/pdo_firebird/install.yml similarity index 100% rename from php_modules/pdo_firebird/build.yml rename to php_modules/pdo_firebird/install.yml diff --git a/php_modules/pdo_firebird/test.yml b/php_modules/pdo_firebird/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_firebird/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_mysql/build.yml b/php_modules/pdo_mysql/install.yml similarity index 100% rename from php_modules/pdo_mysql/build.yml rename to php_modules/pdo_mysql/install.yml diff --git a/php_modules/pdo_mysql/test.yml b/php_modules/pdo_mysql/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_mysql/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_oci/build.yml b/php_modules/pdo_oci/install.yml similarity index 100% rename from php_modules/pdo_oci/build.yml rename to php_modules/pdo_oci/install.yml diff --git a/php_modules/pdo_oci/test.yml b/php_modules/pdo_oci/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_oci/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_odbc/build.yml b/php_modules/pdo_odbc/install.yml similarity index 100% rename from php_modules/pdo_odbc/build.yml rename to php_modules/pdo_odbc/install.yml diff --git a/php_modules/pdo_odbc/test.yml b/php_modules/pdo_odbc/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_odbc/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_pgsql/build.yml b/php_modules/pdo_pgsql/install.yml similarity index 100% rename from php_modules/pdo_pgsql/build.yml rename to php_modules/pdo_pgsql/install.yml diff --git a/php_modules/pdo_pgsql/test.yml b/php_modules/pdo_pgsql/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_pgsql/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_sqlite/build.yml b/php_modules/pdo_sqlite/install.yml similarity index 100% rename from php_modules/pdo_sqlite/build.yml rename to php_modules/pdo_sqlite/install.yml diff --git a/php_modules/pdo_sqlite/test.yml b/php_modules/pdo_sqlite/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_sqlite/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pdo_sqlsrv/build.yml b/php_modules/pdo_sqlsrv/install.yml similarity index 100% rename from php_modules/pdo_sqlsrv/build.yml rename to php_modules/pdo_sqlsrv/install.yml diff --git a/php_modules/pdo_sqlsrv/test.yml b/php_modules/pdo_sqlsrv/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pdo_sqlsrv/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pgsql/build.yml b/php_modules/pgsql/install.yml similarity index 100% rename from php_modules/pgsql/build.yml rename to php_modules/pgsql/install.yml diff --git a/php_modules/pgsql/test.yml b/php_modules/pgsql/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pgsql/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/phalcon/build.yml b/php_modules/phalcon/install.yml similarity index 100% rename from php_modules/phalcon/build.yml rename to php_modules/phalcon/install.yml diff --git a/php_modules/phalcon/test.yml b/php_modules/phalcon/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/phalcon/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/phar/build.yml b/php_modules/phar/install.yml similarity index 100% rename from php_modules/phar/build.yml rename to php_modules/phar/install.yml diff --git a/php_modules/phar/test.yml b/php_modules/phar/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/phar/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/posix/build.yml b/php_modules/posix/install.yml similarity index 100% rename from php_modules/posix/build.yml rename to php_modules/posix/install.yml diff --git a/php_modules/posix/test.yml b/php_modules/posix/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/posix/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/pspell/build.yml b/php_modules/pspell/install.yml similarity index 100% rename from php_modules/pspell/build.yml rename to php_modules/pspell/install.yml diff --git a/php_modules/pspell/test.yml b/php_modules/pspell/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/pspell/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/psr/build.yml b/php_modules/psr/install.yml similarity index 100% rename from php_modules/psr/build.yml rename to php_modules/psr/install.yml diff --git a/php_modules/psr/test.yml b/php_modules/psr/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/psr/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/random/build.yml b/php_modules/random/install.yml similarity index 100% rename from php_modules/random/build.yml rename to php_modules/random/install.yml diff --git a/php_modules/random/test.yml b/php_modules/random/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/random/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/rdkafka/build.yml b/php_modules/rdkafka/install.yml similarity index 100% rename from php_modules/rdkafka/build.yml rename to php_modules/rdkafka/install.yml diff --git a/php_modules/rdkafka/test.yml b/php_modules/rdkafka/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/rdkafka/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/readline/build.yml b/php_modules/readline/install.yml similarity index 100% rename from php_modules/readline/build.yml rename to php_modules/readline/install.yml diff --git a/php_modules/readline/test.yml b/php_modules/readline/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/readline/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/recode/build.yml b/php_modules/recode/install.yml similarity index 100% rename from php_modules/recode/build.yml rename to php_modules/recode/install.yml diff --git a/php_modules/recode/test.yml b/php_modules/recode/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/recode/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/redis/build.yml b/php_modules/redis/install.yml similarity index 100% rename from php_modules/redis/build.yml rename to php_modules/redis/install.yml diff --git a/php_modules/redis/test.yml b/php_modules/redis/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/redis/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/reflection/build.yml b/php_modules/reflection/install.yml similarity index 100% rename from php_modules/reflection/build.yml rename to php_modules/reflection/install.yml diff --git a/php_modules/reflection/test.yml b/php_modules/reflection/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/reflection/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/session/build.yml b/php_modules/session/install.yml similarity index 100% rename from php_modules/session/build.yml rename to php_modules/session/install.yml diff --git a/php_modules/session/test.yml b/php_modules/session/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/session/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/shmop/build.yml b/php_modules/shmop/install.yml similarity index 100% rename from php_modules/shmop/build.yml rename to php_modules/shmop/install.yml diff --git a/php_modules/shmop/test.yml b/php_modules/shmop/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/shmop/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/simplexml/build.yml b/php_modules/simplexml/install.yml similarity index 100% rename from php_modules/simplexml/build.yml rename to php_modules/simplexml/install.yml diff --git a/php_modules/simplexml/test.yml b/php_modules/simplexml/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/simplexml/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/snmp/build.yml b/php_modules/snmp/install.yml similarity index 100% rename from php_modules/snmp/build.yml rename to php_modules/snmp/install.yml diff --git a/php_modules/snmp/test.yml b/php_modules/snmp/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/snmp/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/soap/build.yml b/php_modules/soap/install.yml similarity index 100% rename from php_modules/soap/build.yml rename to php_modules/soap/install.yml diff --git a/php_modules/soap/test.yml b/php_modules/soap/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/soap/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sockets/build.yml b/php_modules/sockets/install.yml similarity index 100% rename from php_modules/sockets/build.yml rename to php_modules/sockets/install.yml diff --git a/php_modules/sockets/test.yml b/php_modules/sockets/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sockets/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sodium/build.yml b/php_modules/sodium/install.yml similarity index 100% rename from php_modules/sodium/build.yml rename to php_modules/sodium/install.yml diff --git a/php_modules/sodium/test.yml b/php_modules/sodium/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sodium/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/solr/build.yml b/php_modules/solr/install.yml similarity index 100% rename from php_modules/solr/build.yml rename to php_modules/solr/install.yml diff --git a/php_modules/solr/test.yml b/php_modules/solr/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/solr/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/spl/build.yml b/php_modules/spl/install.yml similarity index 100% rename from php_modules/spl/build.yml rename to php_modules/spl/install.yml diff --git a/php_modules/spl/test.yml b/php_modules/spl/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/spl/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sqlite/build.yml b/php_modules/sqlite/install.yml similarity index 100% rename from php_modules/sqlite/build.yml rename to php_modules/sqlite/install.yml diff --git a/php_modules/sqlite/test.yml b/php_modules/sqlite/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sqlite/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sqlite3/build.yml b/php_modules/sqlite3/install.yml similarity index 100% rename from php_modules/sqlite3/build.yml rename to php_modules/sqlite3/install.yml diff --git a/php_modules/sqlite3/test.yml b/php_modules/sqlite3/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sqlite3/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sqlsrv/build.yml b/php_modules/sqlsrv/install.yml similarity index 100% rename from php_modules/sqlsrv/build.yml rename to php_modules/sqlsrv/install.yml diff --git a/php_modules/sqlsrv/test.yml b/php_modules/sqlsrv/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sqlsrv/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/ssh2/build.yml b/php_modules/ssh2/install.yml similarity index 100% rename from php_modules/ssh2/build.yml rename to php_modules/ssh2/install.yml diff --git a/php_modules/ssh2/test.yml b/php_modules/ssh2/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/ssh2/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/swoole/build.yml b/php_modules/swoole/install.yml similarity index 100% rename from php_modules/swoole/build.yml rename to php_modules/swoole/install.yml diff --git a/php_modules/swoole/test.yml b/php_modules/swoole/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/swoole/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sysvmsg/build.yml b/php_modules/sysvmsg/install.yml similarity index 100% rename from php_modules/sysvmsg/build.yml rename to php_modules/sysvmsg/install.yml diff --git a/php_modules/sysvmsg/test.yml b/php_modules/sysvmsg/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sysvmsg/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sysvsem/build.yml b/php_modules/sysvsem/install.yml similarity index 100% rename from php_modules/sysvsem/build.yml rename to php_modules/sysvsem/install.yml diff --git a/php_modules/sysvsem/test.yml b/php_modules/sysvsem/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sysvsem/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/sysvshm/build.yml b/php_modules/sysvshm/install.yml similarity index 100% rename from php_modules/sysvshm/build.yml rename to php_modules/sysvshm/install.yml diff --git a/php_modules/sysvshm/test.yml b/php_modules/sysvshm/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/sysvshm/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/tidy/build.yml b/php_modules/tidy/install.yml similarity index 100% rename from php_modules/tidy/build.yml rename to php_modules/tidy/install.yml diff --git a/php_modules/tidy/test.yml b/php_modules/tidy/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/tidy/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/tokenizer/build.yml b/php_modules/tokenizer/install.yml similarity index 100% rename from php_modules/tokenizer/build.yml rename to php_modules/tokenizer/install.yml diff --git a/php_modules/tokenizer/test.yml b/php_modules/tokenizer/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/tokenizer/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/uploadprogress/build.yml b/php_modules/uploadprogress/install.yml similarity index 100% rename from php_modules/uploadprogress/build.yml rename to php_modules/uploadprogress/install.yml diff --git a/php_modules/uploadprogress/test.yml b/php_modules/uploadprogress/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/uploadprogress/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/uuid/build.yml b/php_modules/uuid/install.yml similarity index 100% rename from php_modules/uuid/build.yml rename to php_modules/uuid/install.yml diff --git a/php_modules/uuid/test.yml b/php_modules/uuid/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/uuid/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/vips/build.yml b/php_modules/vips/install.yml similarity index 100% rename from php_modules/vips/build.yml rename to php_modules/vips/install.yml diff --git a/php_modules/vips/test.yml b/php_modules/vips/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/vips/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/wddx/build.yml b/php_modules/wddx/install.yml similarity index 100% rename from php_modules/wddx/build.yml rename to php_modules/wddx/install.yml diff --git a/php_modules/wddx/test.yml b/php_modules/wddx/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/wddx/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xdebug/build.yml b/php_modules/xdebug/install.yml similarity index 100% rename from php_modules/xdebug/build.yml rename to php_modules/xdebug/install.yml diff --git a/php_modules/xdebug/test.yml b/php_modules/xdebug/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xdebug/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xlswriter/build.yml b/php_modules/xlswriter/install.yml similarity index 100% rename from php_modules/xlswriter/build.yml rename to php_modules/xlswriter/install.yml diff --git a/php_modules/xlswriter/test.yml b/php_modules/xlswriter/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xlswriter/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xml/build.yml b/php_modules/xml/install.yml similarity index 100% rename from php_modules/xml/build.yml rename to php_modules/xml/install.yml diff --git a/php_modules/xml/test.yml b/php_modules/xml/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xml/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xmlreader/build.yml b/php_modules/xmlreader/install.yml similarity index 100% rename from php_modules/xmlreader/build.yml rename to php_modules/xmlreader/install.yml diff --git a/php_modules/xmlreader/test.yml b/php_modules/xmlreader/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xmlreader/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xmlrpc/build.yml b/php_modules/xmlrpc/install.yml similarity index 100% rename from php_modules/xmlrpc/build.yml rename to php_modules/xmlrpc/install.yml diff --git a/php_modules/xmlrpc/test.yml b/php_modules/xmlrpc/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xmlrpc/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xmlwriter/build.yml b/php_modules/xmlwriter/install.yml similarity index 100% rename from php_modules/xmlwriter/build.yml rename to php_modules/xmlwriter/install.yml diff --git a/php_modules/xmlwriter/test.yml b/php_modules/xmlwriter/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xmlwriter/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/xsl/build.yml b/php_modules/xsl/install.yml similarity index 100% rename from php_modules/xsl/build.yml rename to php_modules/xsl/install.yml diff --git a/php_modules/xsl/test.yml b/php_modules/xsl/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/xsl/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/yaml/build.yml b/php_modules/yaml/install.yml similarity index 100% rename from php_modules/yaml/build.yml rename to php_modules/yaml/install.yml diff --git a/php_modules/yaml/test.yml b/php_modules/yaml/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/yaml/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/zip/build.yml b/php_modules/zip/install.yml similarity index 100% rename from php_modules/zip/build.yml rename to php_modules/zip/install.yml diff --git a/php_modules/zip/test.yml b/php_modules/zip/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/zip/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/zlib/build.yml b/php_modules/zlib/install.yml similarity index 100% rename from php_modules/zlib/build.yml rename to php_modules/zlib/install.yml diff --git a/php_modules/zlib/test.yml b/php_modules/zlib/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/zlib/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- diff --git a/php_modules/zstd/build.yml b/php_modules/zstd/install.yml similarity index 100% rename from php_modules/zstd/build.yml rename to php_modules/zstd/install.yml diff --git a/php_modules/zstd/test.yml b/php_modules/zstd/test.yml deleted file mode 100644 index ed97d539..00000000 --- a/php_modules/zstd/test.yml +++ /dev/null @@ -1 +0,0 @@ ---- From e8c5a4270f3454ce3f3c33e3991d5162497ee320 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 11:41:21 +0100 Subject: [PATCH 04/10] Fixed Python Black linting errors --- bin/gen-docs-php-tools.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/bin/gen-docs-php-tools.py b/bin/gen-docs-php-tools.py index fd3a3689..1f6d4369 100755 --- a/bin/gen-docs-php-tools.py +++ b/bin/gen-docs-php-tools.py @@ -38,7 +38,11 @@ {"name": "**composer**", "dir": "https://getcomposer.org/", "exclude": []}, {"name": "**corepack**", "dir": "https://nodejs.org/api/corepack.html", "exclude": []}, {"name": "**nvm**", "dir": "https://github.com/nvm-sh/nvm", "exclude": []}, - {"name": "**npm**", "dir": "https://nodejs.org/en/knowledge/getting-started/npm/what-is-npm/", "exclude": []}, + { + "name": "**npm**", + "dir": "https://nodejs.org/en/knowledge/getting-started/npm/what-is-npm/", + "exclude": [], + }, {"name": "**node**", "dir": "https://nodejs.org/en/", "exclude": []}, {"name": "**yarn**", "dir": "https://yarnpkg.com/cli/install", "exclude": []}, {"name": "**pip**", "dir": "https://pypi.org/", "exclude": []}, From 45924e67ba13cb0f7869bc9926a1d42e33e8b307 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 12:48:16 +0100 Subject: [PATCH 05/10] Update README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 954d4e6b..6cd73ae6 100644 --- a/README.md +++ b/README.md @@ -487,7 +487,8 @@ make build STAGE=mods VERSION=8.1 ARCH=linux/arm64 Contributors are welcome. Feel free to star and clone this repository and submit issues and pull-requests. Add examples and show what you have created with the provided images. If you see any errors or ways to improve this repository in any way, please do so. -:information_source: For details see **[Contributor Documentation: PHP Module definitions](php_modules/README.md)** +:information_source: For details see **[Contributor Documentation: PHP Module definitions](php_modules/README.md)**
+:information_source: For details see **[Contributor Documentation: PHP Tools definitions](php_tools/README.md)** From 02b3bda76fdcad3e87242fdbb8a8d6b370b32032 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 12:48:29 +0100 Subject: [PATCH 06/10] Update flavours --- doc/flavours.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/doc/flavours.md b/doc/flavours.md index 6a843019..01d216f0 100644 --- a/doc/flavours.md +++ b/doc/flavours.md @@ -17,22 +17,35 @@ Flavours | ### Flavours +Flavours are just different PHP-FPM images that are build on top of each other. Each layer adding more functionality. This makes it easier to separate images based on certain criterias and allows the user to pick a flavor that suits. + + #### base +> **builds from:** Official PHP images + Generic PHP-FPM base image. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.
(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) #### mods +> **build from:** devilbox/php-fpm `base` flavour + Generic PHP-FPM image with fully loaded extensions. Use it to derive your own php-fpm docker image from it and add more extensions, tools and injectables.
(Does not offer any environment variables except for `NEW_UID` and `NEW_GID`) #### prod +> **build from:** devilbox/php-fpm `mods` flavour + Devilbox production image. This Docker image comes with many injectables, port-forwardings, mail-catch-all and user/group rewriting. #### slim +> **build from:** devilbox/php-fpm `prod` flavour + Devilbox intranet-ready image. Similar to `prod`, but contains least subset of required cli tools to make the Devilbox intranet work. #### work +> **build from:** devilbox/php-fpm `slim` flavour + Devilbox development image. Same as `slim`, but comes with lots of locally installed [tools](available-tools.md) to make development inside the container as convenient as possible. See [Integrated Development Environment](../README.md#integrated-development-environment) for more information about this. From 3cda0b7da3812d04ef9ec917cc02278d813a3047 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 13:09:21 +0100 Subject: [PATCH 07/10] Document PHP tool generation --- doc/contributor/PHP-TOOL-install.yml.md | 11 ++ doc/contributor/PHP-TOOL-options.yml.md | 11 ++ php_tools/README.md | 163 ++++++++++++++++++++++++ 3 files changed, 185 insertions(+) create mode 100644 doc/contributor/PHP-TOOL-install.yml.md create mode 100644 doc/contributor/PHP-TOOL-options.yml.md create mode 100644 php_tools/README.md diff --git a/doc/contributor/PHP-TOOL-install.yml.md b/doc/contributor/PHP-TOOL-install.yml.md new file mode 100644 index 00000000..7d52c56f --- /dev/null +++ b/doc/contributor/PHP-TOOL-install.yml.md @@ -0,0 +1,11 @@ +[PHP Tools: Overview](../../php_tools/README.md) | +[PHP Tools: `options.yml`](PHP-TOOL-options.yml.md) | +PHP Tools: `install.yml` + +--- + +

Contributor Documentation: PHP Tools

+ + + +# Tool definition: `install.yml` diff --git a/doc/contributor/PHP-TOOL-options.yml.md b/doc/contributor/PHP-TOOL-options.yml.md new file mode 100644 index 00000000..43ade4ec --- /dev/null +++ b/doc/contributor/PHP-TOOL-options.yml.md @@ -0,0 +1,11 @@ +[PHP Tools: Overview](../../php_tools/README.md) | +PHP Tools: `options.yml` | +[PHP Tools: `install.yml`](../doc/contributor/PHP-TOOL-install.yml.md) + +--- + +

Contributor Documentation: PHP Tools

+ + + +# Tool definition: `options.yml` diff --git a/php_tools/README.md b/php_tools/README.md new file mode 100644 index 00000000..1cdff63c --- /dev/null +++ b/php_tools/README.md @@ -0,0 +1,163 @@ +PHP Tools: Overview | +[PHP Tools: `options.yml`](../doc/contributor/PHP-TOOL-options.yml.md) | +[PHP Tools: `install.yml`](../doc/contributor/PHP-TOOL-install.yml.md) + +--- + +

Contributor Documentation: PHP Tools

+ + + +# PHP Tool definitions + +This document describes how to create new or alter existing PHP tools. + +All PHP tools (for all PHP versions and both for `amd64` and `arm64` platforms) are defined in the `php_tools/` directory in their corresponding sub directory. Tools defined in there will be built for the `work` flavour. + +**Directory Structure:** +```bash +php_tools/ +โ””โ”€โ”€ / + ย ย  โ”œโ”€โ”€ install.yml + ย ย  โ”œโ”€โ”€ options.yml + ย ย  โ””โ”€โ”€ README.md +``` + + +### Requirements + +In order to create new or altere existing PHP tools you need to have the following tools installed locally: +* Python3 +* Python [`PyYAML`](https://pypi.org/project/PyYAML/) module +* Docker +* The `make` command + +Additionally you should have a brief understanding about what flavours exist and how they derive from each other: **[Documentation: Flavours](../doc/flavours.md)**. + + +## How to add PHP tools? + +Simply add your new tool definitions into `php_tools/` as shown in the above directory structure. + +You can either look at existing tools to find out what needs to be added to `install.yml` and `options.yml` or you check out the documentation for that: + +* See **[PHP-TOOL-install.yml.md](../doc/contributor/PHP-TOOL-install.yml.md)** how to alter the `install.yml` file. +* See **[PHP-TOOL-options.yml.md](../doc/contributor/PHP-TOOL-options.yml.md)** how to alter the `options.yml` file. + +Below is a simple example of how the `yq` tool was created: + +```bash +# Enter the php_tools directory +cd php_tools/ + +# Create the yq directory +mkdir yq + +# Create necessary empty files +touch yq/install.yml +touch yq/options.yml +``` + +Now let's edit `options.yml`: +```yaml +--- +name: yq # The name must match the directory name +exclude: [] # Any PHP versions to exclude? + +depends: [jq] # The jq tool must be installed (yq depends on it) +``` + +Now let's edit the `install.yml`: +```yaml +--- +check: yq --version 2>&1 | grep -E '[0-9][.0-9]+' || (yq --version; false) + +all: + type: pip + version: + build_dep: [] + run_dep: [] + pre: + post: +``` + + +## How to generate the Dockerfiles? + +Dockerfiles are generated for all PHP versions with a single `make` command. If you do not specify any arguments, then all PHP tools found in the `php_tools/` directory are being added to the Dockerfiles. + +You can however also generate Dockerfiles only containing the tool that you have created/altered. This makes the `docker build` process much faster and you can troubleshoot potential errors quicker. + +### Generate Dockerfiles for all PHP tools + +Inside the root of this git repository execute the following: +```bash +# Generate Dockerfiles with all available PHP tools found in php_tools/ dir +make gen-dockerfiles +``` + +### Generate Dockerfiles for a single PHP tool + +Inside the root of this git repository execute the following: +```bash +# Generate Dockerfiles with only yq tool +make gen-dockerfiles PHP_TOOLS="yq" +``` + +> **๐Ÿ›ˆ Note:** This will also add any tools that `yq` depends on (specified via `depends:` in `options.yml`) + +You can also exlcude any dependent tools by specifying the `-i` flag. + +```bash +# Generate Dockerfiles with only yq tool and no dependent tools +make gen-dockerfiles PHP_TOOLS="-i yq" +``` + +> **โš  Warning:** The `-i` option might break your build. + +### Generate Dockerfiles for multiple PHP tools + +Inside the root of this git repository execute the following: +```bash +# Generate Dockerfiles with only yq and zsh tool +make gen-dockerfiles PHP_TOOLS="yq zsh" +``` + +> **๐Ÿ›ˆ Note:** This will also add any tools that `yq` and `zsh` depends on (specified via `depends:` in `options.yml`) + +You can also exlcude any dependent tools by specifying the `-i` flag. + +```bash +# Generate Dockerfiles with only yq and zsh tool and no dependent tools +make gen-dockerfiles PHP_TOOLS="-i yq zsh" +``` + + +## How to build the Dockerfiles? + +Once you have generated the Dockerfiles, pick a PHP version and an architecture (`linux/am64` or `linux/arm64`) and then build it via `make`. + +> **๐Ÿ›ˆ Note 1:** PHP tools are generated into Dockerfiles of the `work` flavour, so you will have to use `STAGE=work` to build this flavour.
+> **๐Ÿ›ˆ Note 2:** The `work` flavour depends on the `slim` flavour, so you need to ensure to either pull this Docker image or build it yourself. + +The following example will show the build for: +* PHP version: `8.1` +* Architecture: `linux/amd64` + +### Ensure to have `slim` flavour + +Either build it yourself for the specific PHP version and architecture. +```bash +make build STAGE=slim VERSION=8.1 ARCH=linux/amd64 +``` +Or pull it from Dockerhub +``` +make docker-pull-base-image STAGE=work VERSION=8.1 ARCH=linux/amd64 +``` + +### Build the `work` flavour + +This flavour will include the PHP tools you have generated above. +```bash +make build STAGE=work VERSION=8.1 ARCH=linux/amd64 +``` From d81f406871cfed776ffbb3992b705632dde02f9c Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 13:09:57 +0100 Subject: [PATCH 08/10] Update Documentaion for PHP module generation --- php_modules/README.md | 151 +++++++++++++++++++++++++++++++++++------- 1 file changed, 126 insertions(+), 25 deletions(-) diff --git a/php_modules/README.md b/php_modules/README.md index b7d84753..b9abadc5 100644 --- a/php_modules/README.md +++ b/php_modules/README.md @@ -1,7 +1,6 @@ PHP Mods: Overview | [PHP Mods: `options.yml`](../doc/contributor/PHP-EXT-options.yml.md) | -[PHP Mods: `build.yml`](../doc/contributor/PHP-EXT-build.yml.md) | -[PHP Mods: `test.yml`](../doc/contributor/PHP-EXT-test.yml.md) +[PHP Mods: `install.yml`](../doc/contributor/PHP-EXT-install.yml.md) --- @@ -9,49 +8,151 @@ PHP Mods: Overview | -# PHP Module definitions +## PHP Module definitions -This document describes how to create new or alter existing PHP module definitions. +This document describes how to create new or alter existing PHP modules. -All PHP modules/extensions (for all PHP versions and both for `amd64` and `arm64` platforms) are defined in the `php_modules/` directory in their corresponding sub directory. These definitions are then transformed to Ansible group_vars and afterwards Ansible will generate the corresponding Dockerfiles (Stage: `mods`). +All PHP modules (for all PHP versions and both for `amd64` and `arm64` platforms) are defined in the `php_modules/` directory in their corresponding sub directory. Modules defined in there will be built for the `mods` flavour. + +**Directory Structure:** +```bash +php_modules/ +โ””โ”€โ”€ / + ย ย  โ”œโ”€โ”€ install.yml + ย ย  โ”œโ”€โ”€ options.yml + ย ย  โ””โ”€โ”€ README.md +``` + + +### Requirements + +In order to create new or altere existing PHP modules you need to have the following tools installed locally: +* Python3 +* Python [`PyYAML`](https://pypi.org/project/PyYAML/) module +* Docker +* The `make` command + +Additionally you should have a brief understanding about what flavours exist and how they derive from each other: **[Documentation: Flavours](../doc/flavours.md)**. ## How to add PHP modules? -> **Note:** The below listed steps require you to have the following on your local machine installed: `python3`, `PyYAML` Python module, `docker` and `make`. +Simply add your new module definitions into `php_modules/` as shown in the above directory structure. -1. **Inside `php_modules/` directory:** - 1. Create a new directory with the name of the PHP module in `php_modules/` - 2. Add `build.yml`, `options.yml` and `test.yml` into your newly created directory - 3. Alter `build.yml`, `options.yml` and `test.yml` according to documentation below +You can either look at existing modules to find out what needs to be added to `install.yml` and `options.yml` or you check out the documentation for that: -2. **Inside the root of this git repository:** - 1. Run `make gen-dockerfiles` to generate Dockerfiles via Ansible - 2. Run `make build STAGE=mods VERSION=8.1 ARCH=linux/amd64` to build the `mods` Docker image with version `8.1` for platform `linux/amd64` +* See **[PHP-EXT-install.yml.md](../doc/contributor/PHP-EXT-install.yml.md)** how to alter the `install.yml` file. +* See **[PHP-EXT-options.yml.md](../doc/contributor/PHP-EXT-options.yml.md)** how to alter the `options.yml` file. -**Note:** If you want to test if your new module builds correctly, you can generate Dockerfiles which only contain this one module and all others removed. This allows for much faster Docker builds and you don't have to wait for all other modules to be built. To do so, generate only group_vars for your one module via: +Below is a simple example of how the `xls` module was created: ```bash -# Commands shown here are executed from root of this repository +# Enter the php_modules directory +cd php_modules/ + +# Create the xls directory +mkdir xls + +# Create necessary empty files +touch xls/install.yml +touch xls/options.yml +``` + +Now let's edit `options.yml`: +```yaml +--- +name: xls # The name must match the directory name +exclude: [] # Any PHP versions to exclude? -# Only generate Dockerfiles with PHP extension curl -# Note: if curl has other modules as requirements to be built beforehand, those will also be added -make gen-dockerfiles MODS="curl" +depends_build: [libxml] # The libxml module must be built before xls ``` -:information_source: For details on how to generate modules see **[Abuser Documentation: Build your own image](../doc/abuser/README.md)** +Now let's edit the `install.yml`: +```yaml +--- +all: + type: builtin + build_dep: [libxslt-dev] # This Debian package is required to build xls + run_rep: [libxslt1.1] # This Debian package is required during run-time +``` + + +## How to generate the Dockerfiles? + +Dockerfiles are generated for all PHP versions with a single `make` command. If you do not specify any arguments, then all PHP modules found in the `php_modules/` directory are being added to the Dockerfiles. + +You can however also generate Dockerfiles only containing the module that you have created/altered. This makes the `docker build` process much faster and you can troubleshoot potential errors quicker. +### Generate Dockerfiles for all PHP modules -## Extension definition: `build.yml` +Inside the root of this git repository execute the following: +```bash +# Generate Dockerfiles with all available PHP modules found in php_modules/ dir +make gen-dockerfiles +``` -See **[PHP-EXT-build.yml.md](../doc/contributor/PHP-EXT-build.yml.md)** how to alter the `build.yml` file. +### Generate Dockerfiles for a single PHP module +Inside the root of this git repository execute the following: +```bash +# Generate Dockerfiles with only xls module +make gen-dockerfiles PHP_MODS="xls" +``` -## Extension definition: `options.yml` +> **๐Ÿ›ˆ Note:** This will also add any modules that `xls` depends on (specified via `depends_build:` in `options.yml`) -See **[PHP-EXT-options.yml.md](../doc/contributor/PHP-EXT-options.yml.md)** how to alter the `options.yml` file. +You can also exlcude any dependent modules by specifying the `-i` flag. +```bash +# Generate Dockerfiles with only xls module and no dependent modules +make gen-dockerfiles PHP_MODS="-i xls" +``` -## Extension definition: `test.yml` +> **โš  Warning:** The `-i` option might break your build. -See **[PHP-EXT-test.yml.md](../doc/contributor/PHP-EXT-test.yml.md)** how to alter the `test.yml` file. +### Generate Dockerfiles for multiple PHP modules + +Inside the root of this git repository execute the following: +```bash +# Generate Dockerfiles with only xls and xmlwriter module +make gen-dockerfiles PHP_MODS="xls xmlwriter" +``` + +> **๐Ÿ›ˆ Note:** This will also add any modules that `xls` and `xmlwriter` depends on (specified via `depends_build:` in `options.yml`) + +You can also exlcude any dependent modules by specifying the `-i` flag. + +```bash +# Generate Dockerfiles with only xls and xmlwriter module and no dependent modules +make gen-dockerfiles PHP_MODS="-i xls xmlwriter" +``` + + +## How to build the Dockerfiles? + +Once you have generated the Dockerfiles, pick a PHP version and an architecture (`linux/am64` or `linux/arm64`) and then build it via `make`. + +> **๐Ÿ›ˆ Note 1:** PHP modules are generated into Dockerfiles of the `mods` flavour, so you will have to use `STAGE=mods` to build this flavour.
+> **๐Ÿ›ˆ Note 2:** The `mods` flavour depends on the `base` flavour, so you need to ensure to either pull this Docker image or build it yourself. + +The following example will show the build for: +* PHP version: `8.1` +* Architecture: `linux/amd64` + +### Ensure to have `base` flavour + +Either build it yourself for the specific PHP version and architecture. +```bash +make build STAGE=base VERSION=8.1 ARCH=linux/amd64 +``` +Or pull it from Dockerhub +``` +make docker-pull-base-image STAGE=mods VERSION=8.1 ARCH=linux/amd64 +``` + +### Build the `mods` flavour + +This flavour will include the PHP modules you have generated above. +```bash +make build STAGE=mods VERSION=8.1 ARCH=linux/amd64 +``` From a4708249d5c0d47f239304914e47c99b45ddc304 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 13:24:56 +0100 Subject: [PATCH 09/10] Update options.yml documentation --- doc/contributor/PHP-EXT-options.yml.md | 2 +- doc/contributor/PHP-TOOL-options.yml.md | 42 +++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/doc/contributor/PHP-EXT-options.yml.md b/doc/contributor/PHP-EXT-options.yml.md index ddb0b4af..30cebaa3 100644 --- a/doc/contributor/PHP-EXT-options.yml.md +++ b/doc/contributor/PHP-EXT-options.yml.md @@ -18,7 +18,7 @@ These options are purely for the module generator to decide whether or not to bu * Required: Yes * Type: `str` -The lower-case name of the extension as it is shown by `php -m`. +The lower-case name of the extension as it is shown by `php -m` (must match directory name). ### `exclude` diff --git a/doc/contributor/PHP-TOOL-options.yml.md b/doc/contributor/PHP-TOOL-options.yml.md index 43ade4ec..ca621516 100644 --- a/doc/contributor/PHP-TOOL-options.yml.md +++ b/doc/contributor/PHP-TOOL-options.yml.md @@ -9,3 +9,45 @@ PHP Tools: `options.yml` | # Tool definition: `options.yml` + +These options are purely for the tool generator to decide whether or not to build the tool and in what order to build it (order of dependencies). + + +### `name` + +* Required: Yes +* Type: `str` + +The lower-case name of the tool (must match directory name). + + +### `exclude` + +* Required: Yes +* Type: `list[str]` +* Empty: `[]` + +Add PHP versions to exclude from building/installing this tool. This could be due to build errors or deprecations. + +Example: +```yaml +# Exclude PHP 5.2 and PHP 5.3 +exclude: [5.2, 5.3] +``` + + +### `depends` + +* Required: Yes +* Type: `list[str]` +* Empty: `[]` + +If this tool requires another tool to be present prior building/installing (or just to function properly during run-time), you have to specify them in this list. The tool generator will then ensure to build all available tools in order of dependencies. + +Example: +```yaml +# Before installing the current tool, it will be ensured that +# jq is build and installed beforehand. +depends_build: + - jq +``` From 204afad4e4d467c6d108b72ec1aba6f4215eb838 Mon Sep 17 00:00:00 2001 From: cytopia Date: Sun, 11 Dec 2022 14:10:04 +0100 Subject: [PATCH 10/10] Update docs for install.yml --- doc/contributor/PHP-EXT-install.yml.md | 27 ++- doc/contributor/PHP-TOOL-install.yml.md | 216 ++++++++++++++++++++++++ 2 files changed, 237 insertions(+), 6 deletions(-) diff --git a/doc/contributor/PHP-EXT-install.yml.md b/doc/contributor/PHP-EXT-install.yml.md index 5d9c7f27..64b56ba3 100644 --- a/doc/contributor/PHP-EXT-install.yml.md +++ b/doc/contributor/PHP-EXT-install.yml.md @@ -29,16 +29,21 @@ already_avail: "{{ php_all_versions }}" **Example:** Overwriting `git_ref` for a specific version ```yaml already_avail: [5.2] + all: type: git git_url: https://github.com/phalcon/cphalcon git_ref: master + # PHP 8.1 is using a different git_ref 8.1: + type: git git_ref: v1.0.0 + # PHP 8.0 is using a different git_ref dynamically with latest tag found # See the usage of supported shell code 8.0: + type: git git_ref: $( git tag | sort -V | tail -1 ) ``` @@ -53,7 +58,7 @@ The following keys can be added below: `all`, `8.2`, `8.1`, `8.0`, `7.4`, ... | `post` | No | Yes | Specify a shell command to be run after module installation. | | `build_dep` | No | No | Array Debian packages required to build the module (they won't be present in the final image - only used to built the module) If you don't need any, assign it an empty array: `build_dep: []`. | | `run_dep` | No | No | Array Debian packages required for the module run-time (they won't be present during the build stage - only in the final image). If you don't need any, assign it an empty array: `run_dep: []`. | -| `type` | **Yes** | No | On of the following types to build the module: `builtin`, `pecl`, `git`, `custom`. | +| `type` | **Yes** | No | On of the following types to build the module: `builtin`, `pecl`, `git` or `custom`. | **Example:** ```yaml @@ -65,6 +70,7 @@ all: rm -f /tmp/file.txt \ build_dep: [libmcrypt-dev] run_dep: [libmcrypt4] + 8.1: type: builtin build_dep: [] @@ -82,9 +88,11 @@ all: ```yaml all: type: builtin + 8.1: type: builtin configure: --with-jpeg --with-png + 8.0: type: builtin configure: --with-jpeg @@ -105,6 +113,7 @@ all: command: echo "/usr" | pecl install amqp build_dep: [librabbitmq-dev] run_dep: [librabbitmq4] + 5.5: type: pecl version: 1.9.3 @@ -124,16 +133,22 @@ all: **Example:** ```yaml already_avail: [5.2] + +# Default for all PHP versions if no overwrite exists all: type: git git_url: https://github.com/phalcon/cphalcon git_ref: master -# PHP 8.1 is using a different git_ref + +# PHP 8.1 is overwriting the git_ref 8.1: + type: git git_ref: v1.0.0 + # PHP 8.0 is using a different git_ref dynamically with latest tag found # See the usage of supported shell code 8.0: + type: git git_ref: $( git tag | sort -V | tail -1 ) ``` @@ -165,12 +180,12 @@ all: **Note:** All keys that support shell code can be written as a single line yaml definition or as a multi line yaml definition. Multi-line yaml definitions need a trailing `\` at the end of each line, including the last line.
**Single-line:** -```bash +```yaml all: pre: VERSION="$( curl http://url | grep -Eo '[0-9.]+' )" ``` **Multi-line:** -```bash +```yaml all: pre: | VERSION="$( \ @@ -183,7 +198,7 @@ all: **Note:** All keys that support shell code also support to write multiple shell commands. If you use multiple shell commands, you need to separate them with `&&`.
**Single-command:** -```bash +```yaml all: pre: | VERSION="$( \ @@ -192,7 +207,7 @@ all: )" \ ``` **Multi-command:** -```bash +```yaml all: pre: | URL="http://url" \ diff --git a/doc/contributor/PHP-TOOL-install.yml.md b/doc/contributor/PHP-TOOL-install.yml.md index 7d52c56f..2e3bb228 100644 --- a/doc/contributor/PHP-TOOL-install.yml.md +++ b/doc/contributor/PHP-TOOL-install.yml.md @@ -9,3 +9,219 @@ PHP Tools: `install.yml` # Tool definition: `install.yml` + + +## Top level defines + +| Yaml key | Description | +|-----------------|-------------| +| `check` | A check command to test that the tool has been installed correctly. | +| `all` | Is generic for all PHP versions and will be used whenever no specific version is defined. | +| `7.2` | A version specific block for PHP 7.2. Its child keys will overwrite what has been defined in `all`. | +**Example:** +```yaml +check: yq --version 2>&1 | grep -E '[0-9][.0-9]+' || (yq --version; false) + +# Default for all PHP version if no overwrite exists +all: + type: pip + version: + build_dep: [] + run_dep: [] + pre: + post: + + +# PHP 5.2 is overwriting the version of yq to install +5.2: + type: pip + version: 0.1.0 +``` + + +## Second level defines + +The following keys can be added below: `all`, `8.2`, `8.1`, `8.0`, `7.4`, ... + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `pre` | No | Yes | Specify a shell command to be run before module installation. | +| `post` | No | Yes | Specify a shell command to be run after module installation. | +| `build_dep` | No | No | Array Debian packages required to build the module (they won't be present in the final image - only used to built the module) If you don't need any, assign it an empty array: `build_dep: []`. | +| `run_dep` | No | No | Array Debian packages required for the module run-time (they won't be present during the build stage - only in the final image). If you don't need any, assign it an empty array: `run_dep: []`. | +| `type` | **Yes** | No | On of the following types to build the module: `apt`, `composer`, `npm`, `pip`, `rubygem` or `custom`. | + +**Note:** When using `type: custom`, all data needs to be installed into `/usr/local/bin` as only this directory is copied into the next docker stage during multi-stage build. + + +## Second level defines for `type: apt` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `package` | Yes | No | Specify the Debian apt package to install | + +**Example:** +```yaml +all: + type: apt + package: netcat + +5.3: + type: apt + package: netcat.traditional +``` + + +## Second level defines for `type: composer` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `package` | Yes | No | Specify the Composer package name to install | +| `composer` | Yes | No | Specify the composer version to use for installation: `1` or `2` | +| `version` | No | Yes | Specify the Composer package version to install | +| `binary` | No | Yes | Specify the composer relative binary path to symlink to `/usr/loca/bin/` | +| `flags` | No | Yes | Add composer flags to `composer require` | + +**Example:** +```yaml +all: + type: composer + composer: 2 + package: laravel/installer + binary: bin/laravel + +7.1: + type: composer + version: 2.3.0 + binary: laravel +``` + + +## Second level defines for `type: npm` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `package` | Yes | No | Specify the NPM package name to install | +| `version` | No | Yes | Specify the NPM package version to install | +| `binary` | No | Yes | Specify the NPM relative binary path to symlink to `/usr/loca/bin/` | + +**Example:** +```yaml +all: + type: npm + package: pm2 + binary: pm2 + version: +``` + + +## Second level defines for `type: pip` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `version` | No | Yes | Specify the Pip package version to install | + +The PyPI package name defaults to the name specified in `options.yml`. + +**Example:** +```yaml +all: + type: pip + version: + build_dep: [] + run_dep: [] + pre: + post: | + ln -s pwncat /usr/local/bin/netcat \ +``` + + +## Second level defines for `type: rubygem` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `package` | Yes | No | Specify the Rubygem package name to install | +| `version` | No | Yes | Specify the Rubygem package version to install | + +**Example:** +```yaml +all: + type: rubygem + package: mdl + build_dep: [ruby-dev] + run_dep: [ruby] + +7.2: + type: rubygem + version: 0.11.0 + pre: | + gem install chef-utils -v 16.6.14 \ +``` + + +## Second level defines for `type: custom` + +| Yaml key | Required | Supports
Shell code | Description | +|-------------|----------|-------------------------|-------------| +| `command` | Yes | Yes | Custom command to install a tool. | + +**Note:** When using `type: custom`, all data needs to be installed into `/usr/local/bin` as only this directory is copied into the next docker stage during multi-stage build. + +**Example:** +```yaml +all: + type: custom + command: curl -sS -k -L --fail -L "${PHP_CS_FIXER_URL}" -o /usr/local/bin/php-cs-fixer + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v3.phar" + post: chmod +x /usr/local/bin/php-cs-fixer + +7.3: + type: custom + pre: PHP_CS_FIXER_URL="https://cs.symfony.com/download/php-cs-fixer-v2.phar" +``` + + +## Usage of shell code + +### Single-line vs Multi-line + +**Note:** All keys that support shell code can be written as a single line yaml definition or as a multi line yaml definition. Multi-line yaml definitions need a trailing `\` at the end of each line, including the last line.
+**Single-line:** +```yaml +all: + pre: VERSION="$( curl http://url | grep -Eo '[0-9.]+' )" +``` +**Multi-line:** +```yaml +all: + pre: | + VERSION="$( \ + curl http://url \ + | grep -Eo '[0-9.]+' \ + )" \ +``` + +### Single-command vs Multi-command + +**Note:** All keys that support shell code also support to write multiple shell commands. If you use multiple shell commands, you need to separate them with `&&`.
+**Single-command:** +```yaml +all: + pre: | + VERSION="$( \ + curl http://url \ + | grep -Eo '[0-9.]+' \ + )" \ +``` +**Multi-command:** +```yaml +all: + pre: | + URL="http://url" \ + && VERSION="$( \ + curl "${URL} \ + | grep -Eo '[0-9.]+' \ + )" \ + && echo "${VERSION}" \ + +```