From 485687363b65e4a80a5004a9f3f5457af21c3144 Mon Sep 17 00:00:00 2001 From: Muhamad Aditya Prima Date: Fri, 27 Dec 2024 14:26:33 +0700 Subject: [PATCH] Updated php7 dockerfile and workflows --- .gitea/workflows/php7-alpine.yaml | 311 +++++++++++++----------------- 7/Dockerfile.alpine | 38 +--- 7/Dockerfile.alpine-apache | 47 +---- 7/Dockerfile.alpine-builder | 4 - 4 files changed, 152 insertions(+), 248 deletions(-) diff --git a/.gitea/workflows/php7-alpine.yaml b/.gitea/workflows/php7-alpine.yaml index a92709b..0a32c0d 100644 --- a/.gitea/workflows/php7-alpine.yaml +++ b/.gitea/workflows/php7-alpine.yaml @@ -51,177 +51,144 @@ jobs: PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} tags: | quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-builder-${{ matrix.flavors.os }} - # flavors: - # name: Build PHP 7 container images - # runs-on: ubuntu-latest - # container: - # image: ghcr.io/catthehacker/ubuntu:act-latest - # strategy: - # matrix: - # flavors: - # - os: "alpine" - # os_version: "3.15" - # php_version: "7.4" - # php_ver_short: "7" - # mode: cli - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.15" - # php_version: "7.4" - # php_ver_short: "7" - # mode: full - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.15" - # php_version: "7.4" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "false" - # - os: "alpine" - # os_version: "3.15" - # php_version: "7.4" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "mysql" - # - os: "alpine" - # os_version: "3.15" - # php_version: "7.4" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "postgresql" - - # - os: "alpine" - # os_version: "3.12" - # php_version: "7.3" - # php_ver_short: "7" - # mode: cli - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.12" - # php_version: "7.3" - # php_ver_short: "7" - # mode: full - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.12" - # php_version: "7.3" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "false" - # - os: "alpine" - # os_version: "3.12" - # php_version: "7.3" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "mysql" - # - os: "alpine" - # os_version: "3.12" - # php_version: "7.3" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "postgresql" + flavors: + name: Build PHP 7 container images + runs-on: ubuntu-latest + needs: + - builder + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + strategy: + matrix: + flavors: + - os: "alpine" + os_version: "3.9" + php_version: "7.2" + php_ver_short: "7" + with_server: "false" + with_database: "false" + - os: "alpine" + os_version: "3.12" + php_version: "7.3" + php_ver_short: "7" + with_server: "false" + with_database: "false" + - os: "alpine" + os_version: "3.15" + php_version: "7.4" + php_ver_short: "7" + with_server: "false" + with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "7.2" - # php_ver_short: "7" - # mode: cli - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "7.2" - # php_ver_short: "7" - # mode: full - # with_server: "false" - # with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "7.2" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "false" - # - os: "alpine" - # os_version: "3.9" - # php_version: "7.2" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "mysql" - # - os: "alpine" - # os_version: "3.9" - # php_version: "7.2" - # php_ver_short: "7" - # mode: full - # with_server: "apache" - # with_database: "postgresql" + - os: "alpine" + os_version: "3.9" + php_version: "7.2" + php_ver_short: "7" + with_server: "apache" + with_database: "false" + - os: "alpine" + os_version: "3.12" + php_version: "7.3" + php_ver_short: "7" + with_server: "apache" + with_database: "false" + - os: "alpine" + os_version: "3.15" + php_version: "7.4" + php_ver_short: "7" + with_server: "apache" + with_database: "false" - # 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: Set up QEMU - # # uses: docker/setup-qemu-action@v3 - # - name: Setup Docker buildx - # uses: docker/setup-buildx-action@v3 - # - if: ${{ matrix.flavors.with_server == 'false' && matrix.flavors.with_database == 'false' }} - # name: Build and push php7 - # uses: docker/build-push-action@v5 - # with: - # push: true - # context: . - # file: 7/Dockerfile.${{ matrix.flavors.os }} - # build-args: | - # OS_VERSION=${{ matrix.flavors.os_version }} - # FLAVOR=${{ matrix.flavors.mode }} - # PHP_VERSION=${{ matrix.flavors.php_version }} - # PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} - # tags: | - # quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.mode }}-${{ matrix.flavors.os }} - # - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database == 'false' }} - # name: Build and push php7 with webserver - # uses: docker/build-push-action@v5 - # with: - # push: true - # context: . - # file: 7/Dockerfile.${{ matrix.flavors.with_server }}-${{ matrix.flavors.os }} - # build-args: | - # OS_VERSION=${{ matrix.flavors.os_version }} - # FLAVOR=${{ matrix.flavors.mode }} - # PHP_VERSION=${{ matrix.flavors.php_version }} - # PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} - # WITH_APACHE=true - # tags: | - # quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.mode }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.os }} - # - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database != 'false' }} - # name: Build and push php7 with apache2 and database connector library - # uses: docker/build-push-action@v5 - # with: - # push: true - # context: . - # file: 7/Dockerfile.${{ matrix.flavors.with_server }}-${{ matrix.flavors.os }} - # build-args: | - # OS_VERSION=${{ matrix.flavors.os_version }} - # FLAVOR=${{ matrix.flavors.mode }} - # PHP_VERSION=${{ matrix.flavors.php_version }} - # PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} - # WITH_APACHE=true - # WITH_DATABASE=${{ matrix.flavors.with_database }} - # tags: | - # quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.mode }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.with_database }}-${{ matrix.flavors.os }} \ No newline at end of file + - os: "alpine" + os_version: "3.9" + php_version: "7.2" + php_ver_short: "7" + with_server: "apache" + with_database: "mysql" + - os: "alpine" + os_version: "3.12" + php_version: "7.3" + php_ver_short: "7" + with_server: "apache" + with_database: "mysql" + - os: "alpine" + os_version: "3.15" + php_version: "7.4" + php_ver_short: "7" + with_server: "apache" + with_database: "mysql" + + - os: "alpine" + os_version: "3.9" + php_version: "7.2" + php_ver_short: "7" + with_server: "apache" + with_database: "postgresql" + - os: "alpine" + os_version: "3.12" + php_version: "7.3" + php_ver_short: "7" + with_server: "apache" + with_database: "postgresql" + - os: "alpine" + os_version: "3.15" + php_version: "7.4" + php_ver_short: "7" + with_server: "apache" + with_database: "postgresql" + + 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: Set up QEMU + # uses: docker/setup-qemu-action@v3 + - name: Setup Docker buildx + uses: docker/setup-buildx-action@v3 + - if: ${{ matrix.flavors.with_server == 'false' && matrix.flavors.with_database == 'false' }} + name: Build and push php7 + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 7/Dockerfile.${{ matrix.flavors.os }} + build-args: | + OS_VERSION=${{ matrix.flavors.os_version }} + PHP_VERSION=${{ matrix.flavors.php_version }} + PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} + tags: | + quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.os }} + - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database == 'false' }} + name: Build and push php7 with webserver + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 7/Dockerfile.${{ matrix.flavors.os }}-${{ matrix.flavors.with_server }} + build-args: | + OS_VERSION=${{ matrix.flavors.os_version }} + PHP_VERSION=${{ matrix.flavors.php_version }} + PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} + WITH_APACHE=true + tags: | + quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.os }} + - if: ${{ matrix.flavors.with_server != 'false' && matrix.flavors.with_database != 'false' }} + name: Build and push php7 with webserver and database connector library + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: 7/Dockerfile.${{ matrix.flavors.os }}-${{ matrix.flavors.with_server }} + build-args: | + OS_VERSION=${{ matrix.flavors.os_version }} + PHP_VERSION=${{ matrix.flavors.php_version }} + PHP_VER_SHORT=${{ matrix.flavors.php_ver_short }} + WITH_APACHE=true + WITH_DATABASE=${{ matrix.flavors.with_database }} + tags: | + quay.io/sindigilive/php:${{ matrix.flavors.php_version }}-${{ matrix.flavors.with_server }}-${{ matrix.flavors.with_database }}-${{ matrix.flavors.os }} \ No newline at end of file diff --git a/7/Dockerfile.alpine b/7/Dockerfile.alpine index 77b6af4..c92a8d8 100644 --- a/7/Dockerfile.alpine +++ b/7/Dockerfile.alpine @@ -2,49 +2,25 @@ # PHP 7.3 == 3.12 # PHP 7.4 == 3.15 ARG OS_VERSION=3.15 +ARG PHP_VERSION=7.4 -FROM quay.io/sindigilive/alpine:${OS_VERSION} AS builder -LABEL maintainer=" map@sindigilive.com" +FROM quay.io/sindigilive/php:${PHP_VERSION}-builder-alpine AS builder -ARG FLAVOR=cli ARG WITH_APACHE=false ARG WITH_DATABASE=false -ARG PHP_VERSION=7.4 -ARG PHP_VER_SHORT=7 -ARG COMPOSER_VERSION=2.8.4 -ENV FLAVOR=${FLAVOR} ENV WITH_APACHE=${WITH_APACHE} ENV WITH_DATABASE=${WITH_DATABASE} -ENV PHP_VERSION=${PHP_VERSION} -ENV PHP_VER_SHORT=${PHP_VER_SHORT} -ENV COMPOSER_VERSION=${COMPOSER_VERSION} - -WORKDIR /root - -ADD 7/scripts/alpine-setup.sh /tmp/setup.sh -ADD https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar /usr/local/bin/composer # Create directory, and install required php app -RUN /bin/mkdir -p /app ; \ - /sbin/apk add --update --no-cache \ - php${PHP_VER_SHORT} php${PHP_VER_SHORT}-common \ - php${PHP_VER_SHORT}-cli php${PHP_VER_SHORT}-phar \ - php${PHP_VER_SHORT}-iconv php${PHP_VER_SHORT}-mbstring ; \ - /bin/chmod +x /tmp/setup.sh /usr/local/bin/composer ; \ - /bin/sh /tmp/setup.sh; \ - /bin/rm -f /tmp/*.sh; - -# Create symlinks to /usr/bin/php in case it doesn't exists -RUN ln -ns /usr/bin/php${PHP_VER_SHORT} /usr/bin/php ; exit 0 - -# CLEAN APK CACHES -RUN rm -vrf /var/cache/apk/* +RUN /bin/sh /tmp/setup.sh; \ + /bin/rm -f /tmp/*.sh; \ + rm -vrf /var/cache/apk/* FROM scratch -ARG PHP_VERSION=5.6 -ARG PHP_VER_SHORT=5 +ARG PHP_VERSION=7.4 +ARG PHP_VER_SHORT=7 ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} diff --git a/7/Dockerfile.alpine-apache b/7/Dockerfile.alpine-apache index 9e73181..7a60849 100644 --- a/7/Dockerfile.alpine-apache +++ b/7/Dockerfile.alpine-apache @@ -2,60 +2,25 @@ # PHP 7.3 == 3.12 # PHP 7.4 == 3.15 ARG OS_VERSION=3.15 +ARG PHP_VERSION=7.4 -FROM quay.io/sindigilive/alpine:${OS_VERSION} AS builder -LABEL maintainer=" map@sindigilive.com" +FROM quay.io/sindigilive/php:${PHP_VERSION}-builder-alpine AS builder -ARG FLAVOR=cli ARG WITH_APACHE=false ARG WITH_DATABASE=false -ARG PHP_VERSION=7.4 -ARG PHP_VER_SHORT=7 -ARG COMPOSER_VERSION=2.8.4 -ENV FLAVOR=${FLAVOR} ENV WITH_APACHE=${WITH_APACHE} ENV WITH_DATABASE=${WITH_DATABASE} -ENV PHP_VERSION=${PHP_VERSION} -ENV PHP_VER_SHORT=${PHP_VER_SHORT} -ENV SERVER_ROOT=/app -ENV COMPOSER_VERSION=${COMPOSER_VERSION} - -WORKDIR /root - -ADD 7/scripts/alpine-setup.sh /tmp/setup.sh -ADD scripts/apache-entrypoint.sh /usr/local/bin/entrypoint.sh -ADD https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar /usr/local/bin/composer # Create directory, and install required php app -RUN /bin/mkdir -p /app ; \ - /sbin/apk add --update --no-cache \ - php${PHP_VER_SHORT} php${PHP_VER_SHORT}-common \ - php${PHP_VER_SHORT}-cli php${PHP_VER_SHORT}-phar \ - php${PHP_VER_SHORT}-iconv php${PHP_VER_SHORT}-mbstring ; \ - /bin/chmod +rx /tmp/setup.sh /usr/local/bin/entrypoint.sh /usr/local/bin/composer; \ - /bin/sh /tmp/setup.sh; \ - /bin/rm -f /tmp/*.sh; - -ADD htdocs ${SERVER_ROOT}/htdocs - -# Create symlinks to /usr/bin/php in case it doesn't exists -RUN ln -ns /usr/bin/php${PHP_VER_SHORT} /usr/bin/php ; exit 0 - -# CLEAN APK CACHES -RUN sed -i "s|#version#|${PHP_VERSION}|" /app/htdocs/index.html ; \ - sed -i "s|#os#|alpine|" /app/htdocs/index.html ; \ - sed -i "s|#flavor#|${FLAVOR}|" /app/htdocs/index.html ; \ - mkdir -p ${SERVER_ROOT}/logs ${SERVER_ROOT}/run /run/apache2 ; \ - ln -s /usr/lib/apache2 ${SERVER_ROOT}/modules ; \ - chmod -R 755 ${SERVER_ROOT}/logs ${SERVER_ROOT/run} ; \ - chown -R apache:apache ${SERVER_ROOT}/htdocs ${SERVER_ROOT}/logs ${SERVER_ROOT}/run /run/apache2 ; \ +RUN /bin/sh /tmp/setup.sh; \ + /bin/rm -f /tmp/*.sh; \ rm -vrf /var/cache/apk/* FROM scratch -ARG PHP_VERSION=5.6 -ARG PHP_VER_SHORT=5 +ARG PHP_VERSION=7.4 +ARG PHP_VER_SHORT=7 ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} diff --git a/7/Dockerfile.alpine-builder b/7/Dockerfile.alpine-builder index f7b32ec..9479e20 100644 --- a/7/Dockerfile.alpine-builder +++ b/7/Dockerfile.alpine-builder @@ -6,14 +6,10 @@ ARG OS_VERSION=3.15 FROM quay.io/sindigilive/alpine:${OS_VERSION} LABEL maintainer=" map@sindigilive.com" -ARG WITH_APACHE=false -ARG WITH_DATABASE=false ARG PHP_VERSION=7.4 ARG PHP_VER_SHORT=7 ARG COMPOSER_VERSION=2.8.4 -ENV WITH_APACHE=${WITH_APACHE} -ENV WITH_DATABASE=${WITH_DATABASE} ENV PHP_VERSION=${PHP_VERSION} ENV PHP_VER_SHORT=${PHP_VER_SHORT} ENV COMPOSER_VERSION=${COMPOSER_VERSION}