[info=67bd32b3d87dc1eb5ac5713e494f0c98]

OBS-URL: https://build.opensuse.org/package/show/devel:BCI:Tumbleweed/php-apache8-image?expand=0&rev=208
This commit is contained in:
Dan Čermák 2025-01-01 14:18:22 +00:00 committed by Git OBS Bridge
commit 77bf89351c
11 changed files with 385 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.osc

68
Dockerfile Normal file
View File

@ -0,0 +1,68 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2025 SUSE LLC
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon.
# The content of THIS FILE IS AUTOGENERATED and should not be manually modified.
# It is maintained by the BCI team and generated by
# https://github.com/SUSE/BCI-dockerfile-generator
# Please submit bugfixes or comments via https://bugs.opensuse.org/
# You can contact the BCI team via https://github.com/SUSE/bci/discussions
#!UseOBSRepositories
#!BuildTag: opensuse/bci/php-apache:%%php_version%%-%RELEASE%
#!BuildTag: opensuse/bci/php-apache:%%php_version%%
#!BuildTag: opensuse/bci/php-apache:8
#!BuildTag: opensuse/bci/php-apache:latest
FROM opensuse/tumbleweed:latest
RUN set -euo pipefail; \
zypper -n install php8 php8-cli php-composer2 php8-curl php8-zip php8-zlib php8-phar php8-mbstring apache2-mod_php8; \
zypper -n clean; \
rm -rf {/target,}/var/log/{alternatives.log,lastlog,tallylog,zypper.log,zypp/history,YaST2}
# Define labels according to https://en.opensuse.org/Building_derived_containers
# labelprefix=org.opensuse.bci.php-apache
LABEL org.opencontainers.image.title="openSUSE Tumbleweed BCI PHP-Apache 8"
LABEL org.opencontainers.image.description="PHP-Apache 8 container based on the openSUSE Tumbleweed Base Container Image."
LABEL org.opencontainers.image.version="%%php_version%%"
LABEL org.opencontainers.image.url="https://www.opensuse.org"
LABEL org.opencontainers.image.created="%BUILDTIME%"
LABEL org.opencontainers.image.vendor="openSUSE Project"
LABEL org.opencontainers.image.source="%SOURCEURL%"
LABEL org.opencontainers.image.ref.name="%%php_version%%-%RELEASE%"
LABEL org.opensuse.reference="registry.opensuse.org/opensuse/bci/php-apache:%%php_version%%-%RELEASE%"
LABEL org.openbuildservice.disturl="%DISTURL%"
LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime#openSUSE_BCI"
LABEL org.opensuse.release-stage="released"
# endlabelprefix
LABEL io.artifacthub.package.readme-url="https://raw.githubusercontent.com/SUSE/BCI-dockerfile-generator/Tumbleweed/php-apache8-image/README.md"
ENV PHP_VERSION="%%php_version%%"
ENV PHP_INI_DIR="/etc/php8/"
ENV PHPIZE_DEPS="php8-devel awk make findutils"
ENV COMPOSER_VERSION="%%composer_version%%"
ENV APACHE_CONFDIR="/etc/apache2"
ENTRYPOINT ["docker-php-entrypoint"]
CMD ["apache2-foreground"]
COPY docker-php-source docker-php-entrypoint docker-php-ext-configure docker-php-ext-enable docker-php-ext-install /usr/local/bin/
RUN chmod +x /usr/local/bin/docker-php-*
STOPSIGNAL SIGWINCH
# create our own apache2-foreground from the systemd startup script
RUN sed 's|^exec $apache_bin|exec $apache_bin -DFOREGROUND|' /usr/sbin/start_apache2 > /usr/local/bin/apache2-foreground
RUN chmod +x /usr/local/bin/apache2-foreground
# apache fails to start without its log folder
RUN mkdir -p /var/log/apache2
WORKDIR /srv/www/htdocs
EXPOSE 80

100
README.md Normal file
View File

@ -0,0 +1,100 @@
# 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
```
## 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.
Install PECL extensions 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 its dependencies first.
## 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`.
The script `docker-php-ext-install` performs an actual job, all others are
just no-operation scripts for interoperability.
## 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/).

14
_service Normal file
View File

@ -0,0 +1,14 @@
<services>
<service mode="buildtime" name="docker_label_helper"/>
<service mode="buildtime" name="kiwi_metainfo_helper"/>
<service mode="buildtime" name="replace_using_package_version">
<param name="file">Dockerfile</param>
<param name="regex">%%composer_version%%</param>
<param name="package">php-composer2</param>
</service>
<service mode="buildtime" name="replace_using_package_version">
<param name="file">Dockerfile</param>
<param name="regex">%%php_version%%</param>
<param name="package">php8</param>
</service>
</services>

9
docker-php-entrypoint Normal file
View File

@ -0,0 +1,9 @@
#!/bin/sh
set -e
# first arg is `-f` or `--some-option`
if [ "${1#-}" != "$1" ]; then
set -- apache2-foreground "$@"
fi
exec "$@"

2
docker-php-ext-configure Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
echo "This script is not required in this PHP container."

2
docker-php-ext-enable Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
echo "This script is not required in this PHP container."

10
docker-php-ext-install Normal file
View File

@ -0,0 +1,10 @@
#!/bin/bash
set -euo pipefail
extensions=()
for ext in $@; do
[[ "$ext" =~ ^- ]] || extensions+=("php8-$ext")
done
zypper -n in ${extensions[*]}

2
docker-php-source Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
echo "This script is not required in this PHP container."

154
php-apache8-image.changes Normal file
View File

@ -0,0 +1,154 @@
-------------------------------------------------------------------
Wed Jan 1 14:13:48 UTC 2025 - SUSE Update Bot <bci-internal@suse.de>
- update copyright year
-------------------------------------------------------------------
Tue Dec 3 13:26:37 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
- Change attribute order in _service
-------------------------------------------------------------------
Wed Oct 30 15:34:45 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
- remove nonsensical org.opencontainers.image.authors - duplication of .vendor
-------------------------------------------------------------------
Tue Oct 29 15:23:20 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
- drop tag_version-%RELEASE%
-------------------------------------------------------------------
Mon Oct 14 11:26:26 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
- make the version-%release tag the first one listed; remove duplicates where they existed; update image.ref/reference to point to the version-%release(-) tag
-------------------------------------------------------------------
Fri Oct 11 15:12:52 UTC 2024 - SUSE Update Bot <bci-internal@suse.de>
- make the tag with -%RELEASE% the first tag listed
-------------------------------------------------------------------
Wed Sep 25 17:36:16 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- rerender installation step in multiple lines, allow uninstalling optional packages
-------------------------------------------------------------------
Wed Sep 25 17:12:11 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- improved log cleaning
-------------------------------------------------------------------
Tue Sep 24 20:00:32 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- remove release tags for additional_versions
-------------------------------------------------------------------
Thu Sep 12 10:37:22 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- set useobsrepositories explicitly
-------------------------------------------------------------------
Wed Sep 11 08:07:25 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- use full version in php container labels
-------------------------------------------------------------------
Wed Aug 14 12:30:32 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- install packages first
-------------------------------------------------------------------
Thu Aug 8 19:28:10 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- add oci.image.ref.name
-------------------------------------------------------------------
Thu Aug 8 16:43:43 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- remove oci reference annotation again
-------------------------------------------------------------------
Mon Aug 5 11:38:13 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- add OCI reference annotation
-------------------------------------------------------------------
Sat Aug 3 08:56:51 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- set OCI.authors attribute instead of deprecated MAINTAINER
-------------------------------------------------------------------
Wed Jul 31 12:06:44 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- set specific lifecycle url for openSUSE BCI
-------------------------------------------------------------------
Tue Jun 18 17:24:16 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- use sentence style capitalization in READMEs
-------------------------------------------------------------------
Mon Jun 10 15:11:25 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- update README; reduce unnecessary newlines
-------------------------------------------------------------------
Wed Jun 5 15:13:27 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- Don't add artifacthub labels into labelprefix section
-------------------------------------------------------------------
Tue Jun 4 12:35:15 UTC 2024 - Alexandre Vicenzi <alexandre.vicenzi@suse.com>
- Fix grammar mistake in licensing footer
-------------------------------------------------------------------
Wed May 22 13:38:53 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Extend README
-------------------------------------------------------------------
Sun May 19 09:10:06 UTC 2024 - Dan Čermák <dcermak@suse.com>
- add findutils for phpize
-------------------------------------------------------------------
Tue May 14 15:40:34 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- add latest tag
-------------------------------------------------------------------
Tue May 7 19:07:24 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- extend READMEs; correct eula for application images
-------------------------------------------------------------------
Fri Apr 12 12:03:53 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- Don't wipe everything in /var/log, only remove log files (this omits directories owned by packages)
-------------------------------------------------------------------
Wed Jan 17 14:29:14 UTC 2024 - Dan Čermák <dcermak@suse.com>
- Add initial README stub
-------------------------------------------------------------------
Tue Jan 2 08:26:58 UTC 2024 - Dirk Mueller <dmueller@suse.com>
- update year to 2024
-------------------------------------------------------------------
Thu Sep 28 14:29:10 UTC 2023 - Dirk Mueller <dmueller@suse.com>
- add copyright and description header
-------------------------------------------------------------------
Mon Jul 24 13:32:39 UTC 2023 - Dirk Mueller <dmueller@suse.com>
- drop setting of APACHE_ENVVARS as it no longer exists
-------------------------------------------------------------------
Thu Jul 06 09:56:51 UTC 2023 - SUSE Update Bot <bci-internal@suse.de>
- First version of the PHP-Apache 8 BCI