Dan Čermák
b05b063938
OBS-URL: https://build.opensuse.org/package/show/devel:BCI:Tumbleweed/php-apache8-image?expand=0&rev=81
102 lines
3.1 KiB
Markdown
102 lines
3.1 KiB
Markdown
# The PHP Apache 8 Container Image
|
|
|
|
![Redistributable](https://img.shields.io/badge/Redistributable-Yes-green)
|
|
|
|
|
|
PHP is a general-purpose scripting language used primarily for server-side web
|
|
development. It can be used directly, embedded in HTML files, or executed via a
|
|
server-side Apache2 module or CGI scripts.
|
|
|
|
## How to use the image
|
|
|
|
The image ships with the Apache web server and the `mod_php` module.
|
|
|
|
To deploy an application, copy its sources into the htdocs folder
|
|
`/srv/www/htdocs` (this directory is the `WORKDIR` of the container image):
|
|
|
|
```Dockerfile
|
|
FROM registry.opensuse.org/opensuse/bci/php-apache:8
|
|
|
|
RUN set -eux; \
|
|
zypper -n in $my_dependencies; \
|
|
# additional setup steps
|
|
|
|
# Copy the app into the Apache2 document root
|
|
COPY app/ .
|
|
```
|
|
|
|
Build the image and run the resulting container:
|
|
|
|
```ShellSession
|
|
$ buildah bud -t my-app .
|
|
$ podman run -d -p 8080:80 my-app
|
|
```
|
|
|
|
Alternatively, you can mount the application's source code directly into the
|
|
container:
|
|
|
|
```ShellSession
|
|
$ podman run -d -p 8080:80 -v ./app/:/srv/www/htdocs:Z registry.opensuse.org/opensuse/bci/php-apache:8-%RELEASE%
|
|
```
|
|
|
|
## How to install PHP extensions
|
|
|
|
PHP extensions must be installed using the `zypper` package manager. PHP
|
|
extensions are named using the `php8-$extension_name` scheme,
|
|
and they can be installed as follows:
|
|
|
|
```Dockerfile
|
|
FROM registry.opensuse.org/opensuse/bci/php-apache:8
|
|
|
|
RUN zypper -n in php8-gd php8-intl
|
|
```
|
|
|
|
Alternatively, you can use the `docker-php-ext-install` script. It is provided
|
|
for compatibility with the [PHP DockerHub Image](https://hub.docker.com/_/php)
|
|
but it uses zypper to install the extensions from RPMs. It is provided for
|
|
compatibility reasons and can be used similar to the script from PHP DockerHub
|
|
image:
|
|
|
|
```Dockerfile
|
|
FROM registry.opensuse.org/opensuse/bci/php-apache:8
|
|
|
|
RUN docker-php-ext-install gd intl
|
|
```
|
|
|
|
## How to install PECL extensions
|
|
|
|
[PECL](https://pecl.php.net/) is a package repository hosting PHP extensions. It
|
|
can be used as an alternative source to obtain PHP extensions, but without any
|
|
guarantee of interoperability with this image and without any official support.
|
|
|
|
PECL extensions can be installed as follows:
|
|
|
|
```Dockerfile
|
|
FROM registry.opensuse.org/opensuse/bci/php-apache:8
|
|
|
|
RUN set -euo pipefail; \
|
|
zypper -n in $PHPIZE_DEPS php8-pecl; \
|
|
pecl install APCu-5.1.21;
|
|
```
|
|
|
|
**Note:** Building an extension may require installing additional dependencies.
|
|
|
|
|
|
## Compatibility with the DockerHub Image
|
|
|
|
The following scripts ship with the image to keep it compatible with the
|
|
DockerHub image: `docker-php-source`, `docker-php-ext-configure`,
|
|
`docker-php-ext-enable`, and `docker-php-ext-install`. Note that only
|
|
`docker-php-ext-install` performs an actual job. None of the other scripts
|
|
require to be executed in the image.
|
|
|
|
## Licensing
|
|
|
|
`SPDX-License-Identifier: MIT`
|
|
|
|
This documentation and the build recipe are licensed as MIT.
|
|
The container itself contains various software components under various open source licenses listed in the associated
|
|
Software Bill of Materials (SBOM).
|
|
|
|
This image is based on [openSUSE Tumbleweed](https://get.opensuse.org/tumbleweed/).
|