PHP Mods: Overview |
PHP Mods: options.yml
|
PHP Mods: install.yml
Yaml key | Description |
---|---|
already_avail |
Array of PHP versions for which we don't have to install the module as it is already present via its FROM image. |
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: Using already_avail
# "{{ php_all_versions }}" Jinja2 variable is available and
# translates to an array of all available PHP versions.
already_avail: "{{ php_all_versions }}"
Example: Overwriting git_ref
for a specific version
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 )
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: builtin , pecl , git or custom . |
Example:
all:
type: builtin
pre: |
ARCH="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE))" \
post: |
rm -f /tmp/file.txt \
build_dep: [libmcrypt-dev]
run_dep: [libmcrypt4]
8.1:
type: builtin
build_dep: []
run_dep: []
Yaml key | Required | Supports Shell code |
Description |
---|---|---|---|
configure |
No | Yes | Add ./configure arguments. E.g.:configure: --with-jpeg --with-png |
Example:
all:
type: builtin
8.1:
type: builtin
configure: --with-jpeg --with-png
8.0:
type: builtin
configure: --with-jpeg
Yaml key | Required | Supports Shell code |
Description |
---|---|---|---|
version |
No | Yes | Pecl packet version |
command |
No | Yes | Overwrite pecl command (default: pecl install <ext> ) |
Example:
all:
type: pecl
command: echo "/usr" | pecl install amqp
build_dep: [librabbitmq-dev]
run_dep: [librabbitmq4]
5.5:
type: pecl
version: 1.9.3
run_dep: [librabbitmq1]
Yaml key | Required | Supports Shell code |
Description |
---|---|---|---|
git_url |
Yes | Yes | Git repository URL |
git_ref |
No | Yes | Tag, branch, commit to check out (shell code supported to dynamically checkout) |
configure |
No | Yes | Add ./configure arguments. |
command |
No | Yes | Overwrite default command (default: phpize && ./configure && make && make install ) |
Example:
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 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 )
Yaml key | Required | Supports Shell code |
Description |
---|---|---|---|
command |
Yes | Yes | Custom command to install and enable a module |
Example:
all:
type: custom
command: |
wget http://url/file.tar.gz \
&& tar xvfz file.tar.gz \
&& cd file \
&& phpize \
&& ./configure \
&& make \
&& make install \
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:
all:
pre: VERSION="$( curl http://url | grep -Eo '[0-9.]+' )"
Multi-line:
all:
pre: |
VERSION="$( \
curl http://url \
| grep -Eo '[0-9.]+' \
)" \
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:
all:
pre: |
VERSION="$( \
curl http://url \
| grep -Eo '[0-9.]+' \
)" \
Multi-command:
all:
pre: |
URL="http://url" \
&& VERSION="$( \
curl "${URL} \
| grep -Eo '[0-9.]+' \
)" \
&& echo "${VERSION}" \