diff --git a/.gitea/workflows/php-almalinux.yaml b/.gitea/workflows/php-almalinux.yaml new file mode 100644 index 0000000..ebaeace --- /dev/null +++ b/.gitea/workflows/php-almalinux.yaml @@ -0,0 +1,92 @@ +name: Build and push PHP based on almalinux +on: + push: + branches: + - php-almalinux + +jobs: + base: + name: Build php8-almalinux + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + strategy: + matrix: + params: + - os_version: "8.10" + php_version: "7.2" + composer_version: "2.8.9" + - os_version: "8.10" + php_version: "7.3" + composer_version: "2.8.9" + - os_version: "8.10" + php_version: "7.4" + composer_version: "2.8.9" + - os_version: "9.5" + php_version: "8.0" + composer_version: "2.8.9" + - os_version: "9.5" + php_version: "8.1" + composer_version: "2.8.9" + - os_version: "9.5" + php_version: "8.2" + composer_version: "2.8.9" + - os_version: "9.5" + php_version: "8.3" + composer_version: "2.8.9" + - 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.params.latest != 'true' && startsWith(matrix.params.php_version, '8') }} + name: Build and push php 8 + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 8/Dockerfile.${{ matrix.params.os }} + build-args: | + OS_VERSION=${{ matrix.params.os_version }} + PHP_VERSION=${{ matrix.params.php_version }} + COMPOSER_VERSION=${{ matrix.params.composer_version }} + tags: | + quay.io/teras/php:${{ matrix.params.php_version }} + - if: ${{ matrix.params.latest != 'true' && startsWith(matrix.params.php_version, '7') }} + name: Build and push php 7 + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 7/Dockerfile.${{ matrix.params.os }} + build-args: | + OS_VERSION=${{ matrix.params.os_version }} + PHP_VERSION=${{ matrix.params.php_version }} + COMPOSER_VERSION=${{ matrix.params.composer_version }} + tags: | + quay.io/teras/php:${{ matrix.params.php_version }} + - if: ${{ matrix.params.latest == 'true' }} + name: Build and push php 8 latest + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 8/Dockerfile.${{ matrix.params.os }} + build-args: | + OS_VERSION=${{ matrix.params.os_version }} + PHP_VERSION=${{ matrix.params.php_version }} + COMPOSER_VERSION=${{ matrix.params.composer_version }} + tags: | + quay.io/teras/php:${{ matrix.params.php_version }} + quay.io/teras/php:8 + quay.io/teras/php:latest diff --git a/.gitea/workflows/php8-almalinux.yaml b/.gitea/workflows/php8-almalinux.yaml deleted file mode 100644 index 28f8091..0000000 --- a/.gitea/workflows/php8-almalinux.yaml +++ /dev/null @@ -1,76 +0,0 @@ -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 diff --git a/7/Dockerfile.almalinux b/7/Dockerfile.almalinux new file mode 100644 index 0000000..e15513c --- /dev/null +++ b/7/Dockerfile.almalinux @@ -0,0 +1,68 @@ +ARG OS_VERSION=8.10 + +FROM quay.io/teras/almalinux:${OS_VERSION}-minimal AS builder + +ARG PHP_VERSION=7.4 +ARG COMPOSER_VERSION=2.8.9 + +ENV PHP_VERSION=${PHP_VERSION} +ENV COMPOSER_VERSION=${COMPOSER_VERSION} +ENV SERVER_ROOT=/app + +RUN /bin/microdnf -y --nodocs install shadow-utils; \ + /bin/mkdir -p ${SERVER_ROOT}; \ + /sbin/groupadd -g 10000 php; \ + /sbin/useradd -u 10000 -g 10000 -s /bin/sh -M -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-8.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/chmod +rx /usr/local/bin/composer; \ + /bin/microdnf -y remove shadow-utils; \ + /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=7.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 " +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"] \ No newline at end of file diff --git a/8/Dockerfile.almalinux b/8/Dockerfile.almalinux index ffc5fa7..9382eeb 100644 --- a/8/Dockerfile.almalinux +++ b/8/Dockerfile.almalinux @@ -11,7 +11,7 @@ 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; \ + /sbin/useradd -u 10000 -g 10000 -s /bin/sh -M -d ${SERVER_ROOT} php; \ /bin/chown -R php:php ${SERVER_ROOT}; \ /bin/microdnf -y --nodocs install epel-release; \ /bin/microdnf -y upgrade; \ @@ -25,8 +25,7 @@ RUN /bin/mkdir -p ${SERVER_ROOT}; \ 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; \ +RUN /bin/chmod +rx /usr/local/bin/composer; \ /bin/microdnf clean all; \ /bin/rm -rf /var/cache/yum/*; \ /bin/rm -rf /var/lib/yum/history/*; \