Merge branch 'php8-almalinux'
This commit is contained in:
commit
f4f5c04541
|
@ -0,0 +1,76 @@
|
||||||
|
name: Build and push PHP 8 container images
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- php8-almalinux
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Build php8-almalinux
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
container:
|
||||||
|
image: ghcr.io/catthehacker/ubuntu:act-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
flavors:
|
||||||
|
- os: "almalinux"
|
||||||
|
os_version: "9.5"
|
||||||
|
php_version: "8.0"
|
||||||
|
composer_version: "2.8.9"
|
||||||
|
- os: "almalinux"
|
||||||
|
os_version: "9.5"
|
||||||
|
php_version: "8.1"
|
||||||
|
composer_version: "2.8.9"
|
||||||
|
- os: "almalinux"
|
||||||
|
os_version: "9.5"
|
||||||
|
php_version: "8.2"
|
||||||
|
composer_version: "2.8.9"
|
||||||
|
- os: "almalinux"
|
||||||
|
os_version: "9.5"
|
||||||
|
php_version: "8.3"
|
||||||
|
composer_version: "2.8.9"
|
||||||
|
- os: "almalinux"
|
||||||
|
os_version: "9.5"
|
||||||
|
php_version: "8.4"
|
||||||
|
composer_version: "2.8.9"
|
||||||
|
latest: 'true'
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: Login to quay.io
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: quay.io
|
||||||
|
username: ${{ vars.QUAY_USERNAME }}
|
||||||
|
password: ${{ secrets.QUAY_SECRET }}
|
||||||
|
- name: Setup Docker buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- if: ${{ matrix.flavors.latest != 'true' }}
|
||||||
|
name: Build and push php ${{ matrix.flavors.php_version }}
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
context: .
|
||||||
|
file: 8/Dockerfile.${{ matrix.flavors.os }}
|
||||||
|
build-args: |
|
||||||
|
OS_VERSION=${{ matrix.flavors.os_version }}
|
||||||
|
PHP_VERSION=${{ matrix.flavors.php_version }}
|
||||||
|
COMPOSER_VERSION=${{ matrix.flavors.composer_version }}
|
||||||
|
tags: |
|
||||||
|
quay.io/teras/php:${{ matrix.flavors.php_version }}
|
||||||
|
- if: ${{ matrix.flavors.latest == 'true' }}
|
||||||
|
name: Build and push php ${{ matrix.flavors.php_version }}
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
push: true
|
||||||
|
context: .
|
||||||
|
file: 8/Dockerfile.${{ matrix.flavors.os }}
|
||||||
|
build-args: |
|
||||||
|
OS_VERSION=${{ matrix.flavors.os_version }}
|
||||||
|
PHP_VERSION=${{ matrix.flavors.php_version }}
|
||||||
|
COMPOSER_VERSION=${{ matrix.flavors.composer_version }}
|
||||||
|
tags: |
|
||||||
|
quay.io/teras/php:${{ matrix.flavors.php_version }}
|
||||||
|
quay.io/teras/php:8
|
||||||
|
quay.io/teras/php:latest
|
|
@ -0,0 +1,67 @@
|
||||||
|
ARG OS_VERSION=9.5
|
||||||
|
|
||||||
|
FROM quay.io/teras/almalinux:${OS_VERSION}-minimal AS builder
|
||||||
|
|
||||||
|
ARG PHP_VERSION=8.4
|
||||||
|
ARG COMPOSER_VERSION=2.8.9
|
||||||
|
|
||||||
|
ENV PHP_VERSION=${PHP_VERSION}
|
||||||
|
ENV COMPOSER_VERSION=${COMPOSER_VERSION}
|
||||||
|
ENV SERVER_ROOT=/app
|
||||||
|
|
||||||
|
RUN /bin/mkdir -p ${SERVER_ROOT}; \
|
||||||
|
/sbin/groupadd -g 10000 php; \
|
||||||
|
/sbin/useradd -u 10000 -g 10000 -s /bin/sh -d ${SERVER_ROOT} php; \
|
||||||
|
/bin/chown -R php:php ${SERVER_ROOT}; \
|
||||||
|
/bin/microdnf -y --nodocs install epel-release; \
|
||||||
|
/bin/microdnf -y upgrade; \
|
||||||
|
/bin/rpm -Uvh --replacepkgs --replacefiles \
|
||||||
|
https://rpms.remirepo.net/enterprise/remi-release-9.rpm; \
|
||||||
|
/bin/microdnf -y module reset php; \
|
||||||
|
/bin/microdnf -y module enable php:remi-${PHP_VERSION}; \
|
||||||
|
/bin/microdnf -y --nodocs install \
|
||||||
|
php php-cli php-common php-phar \
|
||||||
|
php-iconv php-mbstring php-json;
|
||||||
|
|
||||||
|
ADD https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar /usr/local/bin/composer
|
||||||
|
|
||||||
|
RUN /bin/chown php:php /usr/local/bin/composer; \
|
||||||
|
/bin/chmod +rx /usr/local/bin/composer; \
|
||||||
|
/bin/microdnf clean all; \
|
||||||
|
/bin/rm -rf /var/cache/yum/*; \
|
||||||
|
/bin/rm -rf /var/lib/yum/history/*; \
|
||||||
|
/bin/rm -rf /var/lib/yum/yumdb/*; \
|
||||||
|
/bin/rm -rf /var/lib/dnf/*;
|
||||||
|
|
||||||
|
# Create symlinks to /usr/bin/php in case it doesn't exists
|
||||||
|
RUN ln -ns /usr/bin/php${PHP_VERSION} /usr/bin/php; exit 0
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
ARG PHP_VERSION=8.4
|
||||||
|
ARG COMPOSER_VERSION=2.8.9
|
||||||
|
|
||||||
|
ENV PHP_VERSION=${PHP_VERSION}
|
||||||
|
ENV COMPOSER_VERSION=${COMPOSER_VERSION}
|
||||||
|
ENV SERVER_ROOT=/app
|
||||||
|
|
||||||
|
LABEL maintainer="Muhamad Aditya Prima <aditya@teraslink.id>"
|
||||||
|
LABEL name="php"
|
||||||
|
LABEL version="${PHP_VERSION}"
|
||||||
|
LABEL distribution-scope="public"
|
||||||
|
|
||||||
|
#labels for container catalog
|
||||||
|
LABEL summary="PHP ${PHP_VERSION} on almalinux-minimal container image"
|
||||||
|
LABEL description="Provide php on almalinux-minimal container base image"
|
||||||
|
LABEL io.k8s.description="PHP with composer"
|
||||||
|
LABEL io.k8s.display-name="PHP ${PHP_VERSION}"
|
||||||
|
|
||||||
|
COPY --from=builder / /
|
||||||
|
|
||||||
|
WORKDIR ${SERVER_ROOT}
|
||||||
|
|
||||||
|
USER php
|
||||||
|
|
||||||
|
STOPSIGNAL SIGQUIT
|
||||||
|
|
||||||
|
CMD ["/usr/bin/php", "-v"]
|
|
@ -0,0 +1,3 @@
|
||||||
|
ARG PHP_VERSION=8.4
|
||||||
|
|
||||||
|
FROM quay.io/teras/php:${PHP_VERSION}
|
|
@ -0,0 +1,61 @@
|
||||||
|
ARG OS_VERSION=9.5
|
||||||
|
|
||||||
|
FROM quay.io/teras/almalinux:${OS_VERSION}-minimal
|
||||||
|
|
||||||
|
ARG PHP_VERSION=8.4
|
||||||
|
ARG PHP_LONG_VERSION=8.4.7
|
||||||
|
ARG COMPOSER_VERSION=2.8.9
|
||||||
|
|
||||||
|
ENV PHP_VERSION=${PHP_VERSION}
|
||||||
|
ENV COMPOSER_VERSION=${COMPOSER_VERSION}
|
||||||
|
ENV SERVER_ROOT=/app
|
||||||
|
|
||||||
|
ENV PHP_DEPS \
|
||||||
|
tar gzip \
|
||||||
|
gcc gcc-c++ make autoconf bison make
|
||||||
|
|
||||||
|
ENV PHP_INI_DIR=/etc/php
|
||||||
|
|
||||||
|
WORKDIR /tmp
|
||||||
|
|
||||||
|
ADD https://www.php.net/distributions/php-${PHP_LONG_VERSION}.tar.gz /tmp/php-src.tar.gz
|
||||||
|
|
||||||
|
RUN /sbin/groupadd -g 10000 php; \
|
||||||
|
/sbin/useradd -u 10000 -g 10000 -s /bin/sh -d ${SERVER_ROOT} php; \
|
||||||
|
/bin/microdnf -y --nodocs install ${PHP_DEPS}; \
|
||||||
|
/bin/tar -xzf /tmp/php-src.tar.gz -C /usr/src;
|
||||||
|
|
||||||
|
# /bin/mkdir -p ${SERVER_ROOT}; \
|
||||||
|
# /sbin/groupadd -g 10000 php; \
|
||||||
|
# /sbin/useradd -u 10000 -g 10000 -s /bin/sh -d ${SERVER_ROOT} php; \
|
||||||
|
# /bin/chown -R php:php ${SERVER_ROOT}; \
|
||||||
|
# /bin/microdnf -y --nodocs install epel-release; \
|
||||||
|
# /bin/microdnf -y upgrade; \
|
||||||
|
# /bin/rpm -Uvh --replacepkgs --replacefiles \
|
||||||
|
# https://rpms.remirepo.net/enterprise/remi-release-9.rpm; \
|
||||||
|
# /bin/microdnf -y module reset php; \
|
||||||
|
# /bin/microdnf -y module enable php:remi-${PHP_VERSION}; \
|
||||||
|
# /bin/microdnf -y --nodocs install \
|
||||||
|
# php php-cli php-common php-phar \
|
||||||
|
# php-iconv php-mbstring php-json;
|
||||||
|
|
||||||
|
# ADD https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar /usr/local/bin/composer
|
||||||
|
|
||||||
|
# RUN /bin/chown php:php /usr/local/bin/composer; \
|
||||||
|
# /bin/chmod +rx /usr/local/bin/composer; \
|
||||||
|
# /bin/microdnf clean all; \
|
||||||
|
# /bin/rm -rf /var/cache/yum/*; \
|
||||||
|
# /bin/rm -rf /var/lib/yum/history/*; \
|
||||||
|
# /bin/rm -rf /var/lib/yum/yumdb/*; \
|
||||||
|
# /bin/rm -rf /var/lib/dnf/*;
|
||||||
|
|
||||||
|
# Create symlinks to /usr/bin/php in case it doesn't exists
|
||||||
|
# RUN ln -ns /usr/bin/php${PHP_VERSION} /usr/bin/php; exit 0
|
||||||
|
|
||||||
|
# WORKDIR ${SERVER_ROOT}
|
||||||
|
# USER php
|
||||||
|
|
||||||
|
# CMD ["/usr/bin/php", "-v"]
|
||||||
|
CMD ["/bin/sh"]
|
||||||
|
|
||||||
|
STOPSIGNAL SIGQUIT
|
|
@ -0,0 +1,31 @@
|
||||||
|
# DIRECTORY CONFIGURATION
|
||||||
|
SERVER_ROOT="/app"
|
||||||
|
APP_ROOT="$SERVER_ROOT/htdocs"
|
||||||
|
LOG_LEVEL="info"
|
||||||
|
|
||||||
|
/bin/mkdir -p $APP_ROOT $SERVER_ROOT/run $SERVER_ROOT/log $SERVER_ROOT/cgi-bin;
|
||||||
|
/usr/sbin/groupadd -g 10001 httpd ;
|
||||||
|
/usr/sbin/useradd -D -u 10001 -g 10001 -s /bin/sh -h $APP_ROOT httpd ;
|
||||||
|
/bin/chown -R httpd:httpd $SERVER_ROOT;
|
||||||
|
/bin/chmod -R 755 $APP_ROOT;
|
||||||
|
|
||||||
|
sed -i "s|ServerRoot /var/www|ServerRoot ${SERVER_ROOT}|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|User apache|User httpd|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|Group httpd|Group httpd|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|ServerAdmin root@localhost| ServerAdmin httpd@localhost|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|DocumentRoot \"/var/www\"|DocumentRoot \"${SERVER_ROOT}\"|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|DocumentRoot \"/var/www/html\"|DocumentRoot \"${APP_ROOT}\"|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|Directory \"/var/www/html\"|Directory \"${APP_ROOT}\"|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|AllowOverride None|AllowOverride All|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|ErrorLog .*|ErrorLog /dev/stderr \nTransferLog /dev/stdout|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|CustomLog .* combined|CustomLog /dev/stdout combined|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|LogLevel .*|LogLevel ${LOG_LEVEL}|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|LogLevel .*|LogLevel ${LOG_LEVEL}|" /etc/httpd/httpd.conf ;
|
||||||
|
#sed -i "s|#LoadModule rewrite_module|LoadModule rewrite_module|" /etc/httpd/httpd.conf ;
|
||||||
|
#sed -i "s|#LoadModule deflate_module|LoadModule deflate_module|" /etc/httpd/httpd.conf ;
|
||||||
|
#sed -i "s|#LoadModule expires_module|LoadModule expires_module|" /etc/httpd/httpd.conf ;
|
||||||
|
sed -i "s|/var/www/cgi-bin/|${SERVER_ROOT}/cgi-bin/|" /etc/httpd/httpd.conf ;
|
||||||
|
|
||||||
|
# sed -i "s|Require host .example.com|#Require host .example.com|" /etc/apache2/conf.d/info.conf ;
|
||||||
|
# sed -i "s|Require ip 127|Require all granted|" /etc/apache2/conf.d/info.conf ;
|
||||||
|
# sed -i "s|/run/apache2/httpd.pid|${SERVER_ROOT}/run/httpd.pid|" /etc/apache2/conf.d/mpm.conf ;
|
Loading…
Reference in New Issue