diff --git a/.obs/workflows.yml b/.obs/workflows.yml index 25084fdfa..cae67d7ff 100644 --- a/.obs/workflows.yml +++ b/.obs/workflows.yml @@ -81,6 +81,18 @@ staging_build: source_project: home:defolos:BCI:CR:Tumbleweed source_package: openjdk-20-image target_project: home:defolos:BCI:CR:Tumbleweed:Staging + - branch_package: + source_project: home:defolos:BCI:CR:Tumbleweed + source_package: php8-image + target_project: home:defolos:BCI:CR:Tumbleweed:Staging + - branch_package: + source_project: home:defolos:BCI:CR:Tumbleweed + source_package: php-apache8-image + target_project: home:defolos:BCI:CR:Tumbleweed:Staging + - branch_package: + source_project: home:defolos:BCI:CR:Tumbleweed + source_package: php-fpm8-image + target_project: home:defolos:BCI:CR:Tumbleweed:Staging - branch_package: source_project: home:defolos:BCI:CR:Tumbleweed source_package: init-image @@ -202,6 +214,15 @@ refresh_devel_BCI: - trigger_services: project: devel:BCI:Tumbleweed package: openjdk-20-image + - trigger_services: + project: devel:BCI:Tumbleweed + package: php8-image + - trigger_services: + project: devel:BCI:Tumbleweed + package: php-apache8-image + - trigger_services: + project: devel:BCI:Tumbleweed + package: php-fpm8-image - trigger_services: project: devel:BCI:Tumbleweed package: init-image diff --git a/php-apache8-image/Dockerfile b/php-apache8-image/Dockerfile new file mode 100644 index 000000000..fb90c6b86 --- /dev/null +++ b/php-apache8-image/Dockerfile @@ -0,0 +1,49 @@ +# SPDX-License-Identifier: MIT +#!BuildTag: opensuse/bci/php-apache:8 +#!BuildTag: opensuse/bci/php-apache:8-%RELEASE% + +FROM opensuse/tumbleweed:latest + +MAINTAINER openSUSE (https://www.opensuse.org/) + +# 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="8" +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.opensuse.reference="registry.opensuse.org/opensuse/bci/php-apache:8-%RELEASE%" +LABEL org.openbuildservice.disturl="%DISTURL%" +LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime" +LABEL org.opensuse.release-stage="released" + +# endlabelprefix + +RUN set -euo pipefail; zypper -n in php8 php8-cli php-composer2 php8-curl php8-zip php8-zlib php8-phar php8-mbstring apache2-mod_php8; zypper -n clean; rm -rf /var/log/* +ENV PHP_VERSION="%%php_version%%" +ENV PHP_INI_DIR="/etc/php8/" +ENV PHPIZE_DEPS="php8-devel awk make" +ENV COMPOSER_VERSION="%%composer_version%%" +ENV APACHE_CONFDIR="/etc/apache2" +ENV APACHE_ENVVARS="/usr/sbin/envvars" + +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 diff --git a/php-apache8-image/_service b/php-apache8-image/_service new file mode 100644 index 000000000..1790ea34c --- /dev/null +++ b/php-apache8-image/_service @@ -0,0 +1,14 @@ + + + + + Dockerfile + %%composer_version%% + php-composer2 + + + Dockerfile + %%php_version%% + php8 + + \ No newline at end of file diff --git a/php-apache8-image/docker-php-entrypoint b/php-apache8-image/docker-php-entrypoint new file mode 100644 index 000000000..3d36d5e8c --- /dev/null +++ b/php-apache8-image/docker-php-entrypoint @@ -0,0 +1,9 @@ +#!/bin/sh +set -e + +# first arg is `-f` or `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- apache2-foreground "$@" +fi + +exec "$@" diff --git a/php-apache8-image/docker-php-ext-configure b/php-apache8-image/docker-php-ext-configure new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php-apache8-image/docker-php-ext-configure @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php-apache8-image/docker-php-ext-enable b/php-apache8-image/docker-php-ext-enable new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php-apache8-image/docker-php-ext-enable @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php-apache8-image/docker-php-ext-install b/php-apache8-image/docker-php-ext-install new file mode 100644 index 000000000..d8c601f3e --- /dev/null +++ b/php-apache8-image/docker-php-ext-install @@ -0,0 +1,10 @@ +#!/bin/bash +set -euo pipefail + +extensions=() + +for ext in $@; do + [[ "$ext" =~ ^- ]] || extensions+=("php8-$ext") +done + +zypper -n in ${extensions[*]} diff --git a/php-apache8-image/docker-php-source b/php-apache8-image/docker-php-source new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php-apache8-image/docker-php-source @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php-apache8-image/php-apache8-image.changes b/php-apache8-image/php-apache8-image.changes new file mode 100644 index 000000000..e44013e28 --- /dev/null +++ b/php-apache8-image/php-apache8-image.changes @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Thu Jul 06 09:56:51 UTC 2023 - SUSE Update Bot + +- First version of the PHP-Apache 8 BCI diff --git a/php-fpm8-image/Dockerfile b/php-fpm8-image/Dockerfile new file mode 100644 index 000000000..b9f70f4e4 --- /dev/null +++ b/php-fpm8-image/Dockerfile @@ -0,0 +1,65 @@ +# SPDX-License-Identifier: MIT +#!BuildTag: opensuse/bci/php-fpm:8 +#!BuildTag: opensuse/bci/php-fpm:8-%RELEASE% + +FROM opensuse/tumbleweed:latest + +MAINTAINER openSUSE (https://www.opensuse.org/) + +# Define labels according to https://en.opensuse.org/Building_derived_containers +# labelprefix=org.opensuse.bci.php-fpm +LABEL org.opencontainers.image.title="openSUSE Tumbleweed BCI PHP-FPM 8" +LABEL org.opencontainers.image.description="PHP-FPM 8 container based on the openSUSE Tumbleweed Base Container Image." +LABEL org.opencontainers.image.version="8" +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.opensuse.reference="registry.opensuse.org/opensuse/bci/php-fpm:8-%RELEASE%" +LABEL org.openbuildservice.disturl="%DISTURL%" +LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime" +LABEL org.opensuse.release-stage="released" + +# endlabelprefix + +RUN set -euo pipefail; zypper -n in php8 php8-cli php-composer2 php8-curl php8-zip php8-zlib php8-phar php8-mbstring php8-fpm; zypper -n clean; rm -rf /var/log/* +ENV PHP_VERSION="%%php_version%%" +ENV PHP_INI_DIR="/etc/php8/" +ENV PHPIZE_DEPS="php8-devel awk make" +ENV COMPOSER_VERSION="%%composer_version%%" + +ENTRYPOINT ["docker-php-entrypoint"] +CMD ["php-fpm"] +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-* +WORKDIR /srv/www/htdocs + +RUN set -euo pipefail; \ + cd /etc/php8/fpm/; \ + test -e php-fpm.d/www.conf.default && cp -p php-fpm.d/www.conf.default php-fpm.d/www.conf; \ + test -e php-fpm.conf.default && cp -p php-fpm.conf.default php-fpm.conf; \ + { \ + echo '[global]'; \ + echo 'error_log = /proc/self/fd/2'; \ + echo; echo '; https://github.com/docker-library/php/pull/725#issuecomment-443540114'; echo 'log_limit = 8192'; \ + echo; \ + echo '[www]'; \ + echo '; if we send this to /proc/self/fd/1, it never appears'; \ + echo 'access.log = /proc/self/fd/2'; \ + echo; \ + echo 'clear_env = no'; \ + echo; \ + echo '; Ensure worker stdout and stderr are sent to the main error log.'; \ + echo 'catch_workers_output = yes'; \ + echo 'decorate_workers_output = no'; \ + } | tee php-fpm.d/docker.conf; \ + { \ + echo '[global]'; \ + echo 'daemonize = no'; \ + } | tee php-fpm.d/zz-docker.conf + +# Override stop signal to stop process gracefully +# https://github.com/php/php-src/blob/17baa87faddc2550def3ae7314236826bc1b1398/sapi/fpm/php-fpm.8.in#L163 +STOPSIGNAL SIGQUIT + +EXPOSE 9000 diff --git a/php-fpm8-image/_service b/php-fpm8-image/_service new file mode 100644 index 000000000..1790ea34c --- /dev/null +++ b/php-fpm8-image/_service @@ -0,0 +1,14 @@ + + + + + Dockerfile + %%composer_version%% + php-composer2 + + + Dockerfile + %%php_version%% + php8 + + \ No newline at end of file diff --git a/php-fpm8-image/docker-php-entrypoint b/php-fpm8-image/docker-php-entrypoint new file mode 100644 index 000000000..86343d803 --- /dev/null +++ b/php-fpm8-image/docker-php-entrypoint @@ -0,0 +1,9 @@ +#!/bin/sh +set -e + +# first arg is `-f` or `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- php-fpm "$@" +fi + +exec "$@" diff --git a/php-fpm8-image/docker-php-ext-configure b/php-fpm8-image/docker-php-ext-configure new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php-fpm8-image/docker-php-ext-configure @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php-fpm8-image/docker-php-ext-enable b/php-fpm8-image/docker-php-ext-enable new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php-fpm8-image/docker-php-ext-enable @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php-fpm8-image/docker-php-ext-install b/php-fpm8-image/docker-php-ext-install new file mode 100644 index 000000000..d8c601f3e --- /dev/null +++ b/php-fpm8-image/docker-php-ext-install @@ -0,0 +1,10 @@ +#!/bin/bash +set -euo pipefail + +extensions=() + +for ext in $@; do + [[ "$ext" =~ ^- ]] || extensions+=("php8-$ext") +done + +zypper -n in ${extensions[*]} diff --git a/php-fpm8-image/docker-php-source b/php-fpm8-image/docker-php-source new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php-fpm8-image/docker-php-source @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php-fpm8-image/php-fpm8-image.changes b/php-fpm8-image/php-fpm8-image.changes new file mode 100644 index 000000000..287ecc9b0 --- /dev/null +++ b/php-fpm8-image/php-fpm8-image.changes @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Thu Jul 06 09:56:51 UTC 2023 - SUSE Update Bot + +- First version of the PHP-FPM 8 BCI diff --git a/php8-image/Dockerfile b/php8-image/Dockerfile new file mode 100644 index 000000000..f0e2e99d8 --- /dev/null +++ b/php8-image/Dockerfile @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: MIT +#!BuildTag: opensuse/bci/php:8 +#!BuildTag: opensuse/bci/php:8-%RELEASE% + +FROM opensuse/tumbleweed:latest + +MAINTAINER openSUSE (https://www.opensuse.org/) + +# Define labels according to https://en.opensuse.org/Building_derived_containers +# labelprefix=org.opensuse.bci.php +LABEL org.opencontainers.image.title="openSUSE Tumbleweed BCI PHP 8" +LABEL org.opencontainers.image.description="PHP 8 container based on the openSUSE Tumbleweed Base Container Image." +LABEL org.opencontainers.image.version="8" +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.opensuse.reference="registry.opensuse.org/opensuse/bci/php:8-%RELEASE%" +LABEL org.openbuildservice.disturl="%DISTURL%" +LABEL org.opensuse.lifecycle-url="https://en.opensuse.org/Lifetime" +LABEL org.opensuse.release-stage="released" + +# endlabelprefix + +RUN set -euo pipefail; zypper -n in php8 php8-cli php-composer2 php8-curl php8-zip php8-zlib php8-phar php8-mbstring; zypper -n clean; rm -rf /var/log/* +ENV PHP_VERSION="%%php_version%%" +ENV PHP_INI_DIR="/etc/php8/" +ENV PHPIZE_DEPS="php8-devel awk make" +ENV COMPOSER_VERSION="%%composer_version%%" + +ENTRYPOINT ["docker-php-entrypoint"] +CMD ["php", "-a"] +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-* diff --git a/php8-image/_service b/php8-image/_service new file mode 100644 index 000000000..1790ea34c --- /dev/null +++ b/php8-image/_service @@ -0,0 +1,14 @@ + + + + + Dockerfile + %%composer_version%% + php-composer2 + + + Dockerfile + %%php_version%% + php8 + + \ No newline at end of file diff --git a/php8-image/docker-php-entrypoint b/php8-image/docker-php-entrypoint new file mode 100644 index 000000000..88a016c16 --- /dev/null +++ b/php8-image/docker-php-entrypoint @@ -0,0 +1,9 @@ +#!/bin/sh +set -e + +# first arg is `-f` or `--some-option` +if [ "${1#-}" != "$1" ]; then + set -- php "$@" +fi + +exec "$@" diff --git a/php8-image/docker-php-ext-configure b/php8-image/docker-php-ext-configure new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php8-image/docker-php-ext-configure @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php8-image/docker-php-ext-enable b/php8-image/docker-php-ext-enable new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php8-image/docker-php-ext-enable @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php8-image/docker-php-ext-install b/php8-image/docker-php-ext-install new file mode 100644 index 000000000..d8c601f3e --- /dev/null +++ b/php8-image/docker-php-ext-install @@ -0,0 +1,10 @@ +#!/bin/bash +set -euo pipefail + +extensions=() + +for ext in $@; do + [[ "$ext" =~ ^- ]] || extensions+=("php8-$ext") +done + +zypper -n in ${extensions[*]} diff --git a/php8-image/docker-php-source b/php8-image/docker-php-source new file mode 100644 index 000000000..f16eab8f4 --- /dev/null +++ b/php8-image/docker-php-source @@ -0,0 +1,2 @@ +#!/bin/sh +echo "This script is not required in this PHP container." diff --git a/php8-image/php8-image.changes b/php8-image/php8-image.changes new file mode 100644 index 000000000..98dc2f50e --- /dev/null +++ b/php8-image/php8-image.changes @@ -0,0 +1,4 @@ +------------------------------------------------------------------- +Thu Jul 06 09:56:51 UTC 2023 - SUSE Update Bot + +- First version of the PHP 8 BCI