diff --git a/.gitea/workflows/master.yaml b/.gitea/workflows/master.yaml new file mode 100644 index 0000000..f2af2bc --- /dev/null +++ b/.gitea/workflows/master.yaml @@ -0,0 +1,141 @@ +name: Build and push PHP container images +on: + push: + branches: + - master + +jobs: + base: + name: Build php cli with composer + runs-on: ubuntu-latest + container: + image: ghcr.io/catthehacker/ubuntu:act-latest + strategy: + matrix: + params: + - os: "alpine" + os_version: "3.21" + os_label: "true" + php_version: "8.4" + php_short_version: "84" + php_release: "8" + composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "8.10" + # php_version: "7.2" + # php_release: "7" + # composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "8.10" + # php_version: "7.3" + # php_release: "7" + # composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "8.10" + # php_version: "7.4" + # php_release: "7" + # composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "9.5" + # php_version: "8.0" + # php_release: "8" + # composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "9.5" + # php_version: "8.1" + # php_release: "8" + # composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "9.5" + # php_version: "8.2" + # php_release: "8" + # composer_version: "2.8.9" + # - os: "almalinux" + # os_version: "9.5" + # php_version: "8.3" + # php_release: "8" + # composer_version: "2.8.9" + - os: "almalinux" + os_version: "9.5" + php_version: "8.4" + php_release: "8" + php_major: 'true' + 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.os_label != 'true' }} + name: Build and push php release + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: ${{ matrix.params.php_release }}/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.os_label == 'true' }} + name: Build and push php release + uses: docker/build-push-action@v5 + with: + push: true + context: . + file: ${{ matrix.params.php_release }}/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 }}-${{ matrix.params.os }} + # - if: ${{ matrix.params.latest != 'true' && matrix.params.php_major != 'true' && matrix.params.os_label == 'true' }} + # name: Build and push php release + # uses: docker/build-push-action@v5 + # with: + # push: true + # context: . + # file: ${{ matrix.params.php_release }}/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.php_major == 'true' }} + # name: Build and push php major release + # 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_release }} + # - if: ${{ matrix.params.latest == 'true' && matrix.params.os_label != 'true' }} + # name: Build and push php latest release + # 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:latest diff --git a/.gitea/workflows/php-almalinux.yaml b/.gitea/workflows/php-almalinux.yaml deleted file mode 100644 index 3456423..0000000 --- a/.gitea/workflows/php-almalinux.yaml +++ /dev/null @@ -1,100 +0,0 @@ -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: "almalinux" - os_version: "8.10" - php_version: "7.2" - composer_version: "2.8.9" - - os: "almalinux" - os_version: "8.10" - php_version: "7.3" - composer_version: "2.8.9" - - os: "almalinux" - os_version: "8.10" - php_version: "7.4" - composer_version: "2.8.9" - - 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.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/php5-almalinux.yaml b/.gitea/workflows/php5-almalinux.yaml deleted file mode 100644 index 56ed064..0000000 --- a/.gitea/workflows/php5-almalinux.yaml +++ /dev/null @@ -1,125 +0,0 @@ -name: Build and push PHP 5 container images - -on: - push: - branches: - - php5-almalinux - -jobs: - build: - name: Build PHP 5 container images - runs-on: ubuntu-latest - container: - image: ghcr.io/catthehacker/ubuntu:act-latest - strategy: - matrix: - flavors: - - os: "almalinux" - os_version: "8.10" - php_version: "5.6" - php_ver_short: "56" - mode: cli - with_server: "false" - with_database: "false" - - os: "almalinux" - os_version: "8.10" - php_version: "5.6" - php_ver_short: "56" - mode: full - with_server: "false" - with_database: "false" - - os: "almalinux" - os_version: "8.10" - php_version: "5.6" - php_ver_short: "56" - mode: debug - with_server: "false" - 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 php5 - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 5/Dockerfile.${{ matrix.flavors.mode }}-${{ 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 php5 with webserver - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 5/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 php5 with apache2 and database connector library - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 5/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 }} - # build-latest: - # name: Build latest nginx alpine based container images - # runs-on: ubuntu-latest - # needs: - # - build - # container: - # image: ghcr.io/catthehacker/ubuntu:act-latest - # 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 - # - name: Build and push latest nginx - # uses: docker/build-push-action@v5 - # with: - # # platforms: linux/amd64,linux/arm64 - # push: true - # context: . - # file: Dockerfile.alpine - # tags: | - # quay.io/sindigilive/nginx:alpine - # quay.io/sindigilive/nginx:latest diff --git a/.gitea/workflows/php5-alpine.yaml b/.gitea/workflows/php5-alpine.yaml deleted file mode 100644 index 35370a5..0000000 --- a/.gitea/workflows/php5-alpine.yaml +++ /dev/null @@ -1,167 +0,0 @@ -name: Build and push PHP 5 container images - -on: - push: - branches: - - php5-alpine - -jobs: - build: - name: Build PHP 5 container images - runs-on: ubuntu-latest - container: - image: ghcr.io/catthehacker/ubuntu:act-latest - strategy: - matrix: - flavors: - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: cli - with_server: "false" - with_database: "false" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: full - with_server: "false" - with_database: "false" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: debug - with_server: "false" - with_database: "false" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: full - with_server: "apache" - with_database: "false" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: full - with_server: "apache" - with_database: "mysql" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: full - with_server: "apache" - with_database: "postgresql" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: debug - with_server: "apache" - with_database: "false" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: debug - with_server: "apache" - with_database: "mysql" - - os: "alpine" - os_version: "3.6" - php_version: "5.6" - php_ver_short: "5" - mode: debug - 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 php5 - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 5/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 php5 with webserver - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 5/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 php5 with apache2 and database connector library - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 5/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 }} - # build-latest: - # name: Build latest nginx alpine based container images - # runs-on: ubuntu-latest - # needs: - # - build - # container: - # image: ghcr.io/catthehacker/ubuntu:act-latest - # 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 - # - name: Build and push latest nginx - # uses: docker/build-push-action@v5 - # with: - # # platforms: linux/amd64,linux/arm64 - # push: true - # context: . - # file: Dockerfile.alpine - # tags: | - # quay.io/sindigilive/nginx:alpine - # quay.io/sindigilive/nginx:latest diff --git a/.gitea/workflows/php7-alpine.yaml b/.gitea/workflows/php7-alpine.yaml deleted file mode 100644 index 0a32c0d..0000000 --- a/.gitea/workflows/php7-alpine.yaml +++ /dev/null @@ -1,194 +0,0 @@ -name: Build and push PHP 7 container images - -on: - push: - branches: - - php7-alpine - -jobs: - builder: - name: Build PHP 7 builder container images - runs-on: ubuntu-latest - 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" - - os: "alpine" - os_version: "3.12" - php_version: "7.3" - php_ver_short: "7" - - os: "alpine" - os_version: "3.15" - php_version: "7.4" - php_ver_short: "7" - 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 - - name: Build and push php7 builder - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 7/Dockerfile.${{ matrix.flavors.os }}-builder - 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 }}-builder-${{ matrix.flavors.os }} - 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" - 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" - - - 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/.gitea/workflows/php8-alpine.yaml b/.gitea/workflows/php8-alpine.yaml deleted file mode 100644 index 385daf7..0000000 --- a/.gitea/workflows/php8-alpine.yaml +++ /dev/null @@ -1,223 +0,0 @@ -name: Build and push PHP 8 container images - -on: - push: - branches: - - php8-alpine - -jobs: - builder: - name: Build PHP 8 builder container images - runs-on: ubuntu-latest - container: - image: ghcr.io/catthehacker/ubuntu:act-latest - strategy: - matrix: - flavors: - - os: "alpine" - os_version: "3.16" - php_version: "8.0" - php_ver_short: "8" - - os: "alpine" - os_version: "3.19" - php_version: "8.1" - php_ver_short: "81" - - os: "alpine" - os_version: "3.21" - php_version: "8.2" - php_ver_short: "83" - - os: "alpine" - os_version: "3.21" - php_version: "8.3" - php_ver_short: "83" - 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 - - name: Build and push php8 builder - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 8/Dockerfile.${{ matrix.flavors.os }}-builder - 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 }}-builder-${{ matrix.flavors.os }} - - flavors: - name: Build PHP 8 container images - runs-on: ubuntu-latest - needs: - - builder - container: - image: ghcr.io/catthehacker/ubuntu:act-latest - strategy: - matrix: - flavors: - - os: "alpine" - os_version: "3.16" - php_version: "8.0" - php_ver_short: "8" - with_server: "false" - with_database: "false" - - os: "alpine" - os_version: "3.19" - php_version: "8.1" - php_ver_short: "81" - with_server: "false" - with_database: "false" - - os: "alpine" - os_version: "3.21" - php_version: "8.2" - php_ver_short: "82" - with_server: "false" - with_database: "false" - - os: "alpine" - os_version: "3.21" - php_version: "8.3" - php_ver_short: "83" - with_server: "false" - with_database: "false" - - - os: "alpine" - os_version: "3.16" - php_version: "8.0" - php_ver_short: "8" - with_server: "apache" - with_database: "false" - - os: "alpine" - os_version: "3.19" - php_version: "8.1" - php_ver_short: "81" - with_server: "apache" - with_database: "false" - - os: "alpine" - os_version: "3.21" - php_version: "8.2" - php_ver_short: "82" - with_server: "apache" - with_database: "false" - - os: "alpine" - os_version: "3.21" - php_version: "8.3" - php_ver_short: "83" - with_server: "apache" - with_database: "false" - - - os: "alpine" - os_version: "3.16" - php_version: "8.0" - php_ver_short: "8" - with_server: "apache" - with_database: "mysql" - - os: "alpine" - os_version: "3.19" - php_version: "8.1" - php_ver_short: "81" - with_server: "apache" - with_database: "mysql" - - os: "alpine" - os_version: "3.21" - php_version: "8.2" - php_ver_short: "82" - with_server: "apache" - with_database: "mysql" - - os: "alpine" - os_version: "3.21" - php_version: "8.3" - php_ver_short: "83" - with_server: "apache" - with_database: "mysql" - - - os: "alpine" - os_version: "3.16" - php_version: "8.0" - php_ver_short: "8" - with_server: "apache" - with_database: "postgresql" - - os: "alpine" - os_version: "3.19" - php_version: "8.1" - php_ver_short: "81" - with_server: "apache" - with_database: "postgresql" - - os: "alpine" - os_version: "3.21" - php_version: "8.2" - php_ver_short: "82" - with_server: "apache" - with_database: "postgresql" - - os: "alpine" - os_version: "3.21" - php_version: "8.3" - php_ver_short: "83" - 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 php8 - 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 }} - 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 php8 with webserver - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 8/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 php8 with webserver and database connector library - uses: docker/build-push-action@v5 - with: - push: true - context: . - file: 8/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/8/Dockerfile.almalinux b/8/Dockerfile.almalinux index 9382eeb..e365dac 100644 --- a/8/Dockerfile.almalinux +++ b/8/Dockerfile.almalinux @@ -9,10 +9,20 @@ 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 -M -d ${SERVER_ROOT} php; \ - /bin/chown -R php:php ${SERVER_ROOT}; \ +ENV COMPOSER_HOME=${SERVER_ROOT}/.composer +ENV COMPOSER_ALLOW_SUPERUSER=0 +ENV COMPOSER_NO_INTERACTION=1 +ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache +ENV COMPOSER_VENDOR_DIR=${COMPOSER_HOME}/vendor +ENV COMPOSER_BIN_DIR=${COMPOSER_HOME}/bin + +USER root +WORKDIR ${SERVER_ROOT} + +ADD https://github.com/composer/composer/releases/download/${COMPOSER_VERSION}/composer.phar /usr/local/bin/composer + +RUN /bin/mkdir -p ${COMPOSER_CACHE_DIR} ${COMPOSER_VENDOR_DIR} ${COMPOSER_BIN_DIR}; \ + /bin/chown -R appuser:appuser ${COMPOSER_HOME}; \ /bin/microdnf -y --nodocs install epel-release; \ /bin/microdnf -y upgrade; \ /bin/rpm -Uvh --replacepkgs --replacefiles \ @@ -21,11 +31,8 @@ RUN /bin/mkdir -p ${SERVER_ROOT}; \ /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; \ + php-iconv php-mbstring php-json; \ + /bin/chmod +rx /usr/local/bin/composer; \ /bin/microdnf clean all; \ /bin/rm -rf /var/cache/yum/*; \ /bin/rm -rf /var/lib/yum/history/*; \ @@ -40,10 +47,20 @@ FROM scratch ARG PHP_VERSION=8.4 ARG COMPOSER_VERSION=2.8.9 +# Environment variables for user root +ENV LANG=en_US.UTF-8 + ENV PHP_VERSION=${PHP_VERSION} ENV COMPOSER_VERSION=${COMPOSER_VERSION} ENV SERVER_ROOT=/app +ENV COMPOSER_HOME=${SERVER_ROOT}/.composer +ENV COMPOSER_ALLOW_SUPERUSER=0 +ENV COMPOSER_NO_INTERACTION=1 +ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache +ENV COMPOSER_VENDOR_DIR=${COMPOSER_HOME}/vendor +ENV COMPOSER_BIN_DIR=${COMPOSER_HOME}/bin + LABEL maintainer="Muhamad Aditya Prima " LABEL name="php" LABEL version="${PHP_VERSION}" @@ -57,9 +74,11 @@ LABEL io.k8s.display-name="PHP ${PHP_VERSION}" COPY --from=builder / / +ENV PATH="${PATH}:${COMPOSER_BIN_DIR}:${COMPOSER_VENDOR_DIR}/bin" + WORKDIR ${SERVER_ROOT} -USER php +USER appuser STOPSIGNAL SIGQUIT diff --git a/8/Dockerfile.almalinux-builder b/8/Dockerfile.almalinux-builder deleted file mode 100644 index f6ea420..0000000 --- a/8/Dockerfile.almalinux-builder +++ /dev/null @@ -1,61 +0,0 @@ -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 \ No newline at end of file diff --git a/8/Dockerfile.alpine b/8/Dockerfile.alpine index 5da837b..5a7475e 100644 --- a/8/Dockerfile.alpine +++ b/8/Dockerfile.alpine @@ -2,47 +2,89 @@ # PHP 8.1 == 3.19 # PHP 8.2 == 3.21 # PHP 8.3 == 3.21 +# PHP 8.4 == 3.21 ARG OS_VERSION=3.21 -ARG PHP_VERSION=8.3 -FROM quay.io/sindigilive/php:${PHP_VERSION}-builder-alpine AS builder +FROM quay.io/teras/alpine:${OS_VERSION} AS builder -ARG WITH_APACHE=false -ARG WITH_DATABASE=false +ARG PHP_VERSION=8.4 +ARG PHP_SHORT_VERSION=84 +ARG COMPOSER_VERSION=2.8.9 -ENV WITH_APACHE=${WITH_APACHE} -ENV WITH_DATABASE=${WITH_DATABASE} +ENV PHP_VERSION=${PHP_VERSION} +ENV PHP_SHORT_VERSION=${PHP_SHORT_VERSION} +ENV COMPOSER_VERSION=${COMPOSER_VERSION} +ENV SERVER_ROOT=/app + +ENV PHP_VERSION=${PHP_VERSION} +ENV COMPOSER_VERSION=${COMPOSER_VERSION} +ENV SERVER_ROOT=/app + +ENV COMPOSER_HOME=${SERVER_ROOT}/.composer +ENV COMPOSER_ALLOW_SUPERUSER=0 +ENV COMPOSER_NO_INTERACTION=1 +ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache +ENV COMPOSER_VENDOR_DIR=${COMPOSER_HOME}/vendor +ENV COMPOSER_BIN_DIR=${COMPOSER_HOME}/bin + +USER root +WORKDIR ${SERVER_ROOT} + +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/sh /tmp/setup.sh; \ - /bin/rm -f /tmp/*.sh; \ - rm -vrf /var/cache/apk/* +RUN /bin/mkdir -p ${COMPOSER_CACHE_DIR} ${COMPOSER_VENDOR_DIR} ${COMPOSER_BIN_DIR}; \ + /bin/chown -R appuser:appuser ${COMPOSER_HOME}; \ + /sbin/apk add --update --no-cache \ + php${PHP_SHORT_VERSION} php${PHP_SHORT_VERSION}-common \ + php${PHP_SHORT_VERSION}-cli php${PHP_SHORT_VERSION}-phar \ + php${PHP_SHORT_VERSION}-iconv php${PHP_SHORT_VERSION}-mbstring \ + php${PHP_SHORT_VERSION}-json php${PHP_SHORT_VERSION}-openssl ; \ + /bin/chmod +rx /usr/local/bin/composer ; + +# Create symlinks to /usr/bin/php in case it doesn't exists +RUN ln -ns /usr/bin/php${PHP_SHORT_VERSION} /usr/bin/php ; exit 0 + +# CLEAN APK CACHES +RUN rm -vrf /var/cache/apk/* FROM scratch -ARG PHP_VERSION=8.3 -ARG PHP_VER_SHORT=8 +ARG PHP_VERSION=8.4 +ARG COMPOSER_VERSION=2.8.9 +# Environment variables for user root ENV PHP_VERSION=${PHP_VERSION} -ENV PHP_VER_SHORT=${PHP_VER_SHORT} +ENV COMPOSER_VERSION=${COMPOSER_VERSION} +ENV SERVER_ROOT=/app -LABEL maintainer="Muhamad Aditya Prima " +ENV COMPOSER_HOME=${SERVER_ROOT}/.composer +ENV COMPOSER_ALLOW_SUPERUSER=0 +ENV COMPOSER_NO_INTERACTION=1 +ENV COMPOSER_CACHE_DIR=${COMPOSER_HOME}/cache +ENV COMPOSER_VENDOR_DIR=${COMPOSER_HOME}/vendor +ENV COMPOSER_BIN_DIR=${COMPOSER_HOME}/bin +ENV LANG=en_US.UTF-8 + +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 alpine based container image" -LABEL description="Provide php on alpine based container base image" -LABEL io.k8s.description="Very small alpine linux container image" +LABEL summary="PHP ${PHP_VERSION} on alpine linux container image" +LABEL description="Provide php on alpine linux container base image" +LABEL io.k8s.description="PHP with composer" LABEL io.k8s.display-name="PHP ${PHP_VERSION}" COPY --from=builder / / -WORKDIR /app +WORKDIR ${SERVER_ROOT} -USER php +USER appuser + +ENV PATH=${PATH}:${COMPOSER_BIN_DIR}:${COMPOSER_VENDOR_DIR}/bin STOPSIGNAL SIGQUIT -CMD ["/usr/bin/php", "-v"] +CMD ["/usr/bin/php", "-v"] \ No newline at end of file diff --git a/8/Dockerfile.alpine-bak b/8/Dockerfile.alpine-bak new file mode 100644 index 0000000..f1813d0 --- /dev/null +++ b/8/Dockerfile.alpine-bak @@ -0,0 +1,48 @@ +# PHP 8.0 == 3.16 +# PHP 8.1 == 3.19 +# PHP 8.2 == 3.21 +# PHP 8.3 == 3.21 +ARG OS_VERSION=3.21 +ARG PHP_VERSION=8.4 + +FROM quay.io/sindigilive/php:${PHP_VERSION}-builder-alpine AS builder + +ARG WITH_APACHE=false +ARG WITH_DATABASE=false + +ENV WITH_APACHE=${WITH_APACHE} +ENV WITH_DATABASE=${WITH_DATABASE} + +# Create directory, and install required php app +RUN /bin/sh /tmp/setup.sh; \ + /bin/rm -f /tmp/*.sh; \ + rm -vrf /var/cache/apk/* + +FROM scratch + +ARG PHP_VERSION=8.4 +ARG PHP_SHORT_VERSION=84 + +ENV PHP_VERSION=${PHP_VERSION} +ENV PHP_SHORT_VERSION=${PHP_SHORT_VERSION} + +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 alpine based container image" +LABEL description="Provide php on alpine based container base image" +LABEL io.k8s.description="Very small alpine linux container image" +LABEL io.k8s.display-name="PHP ${PHP_VERSION}" + +COPY --from=builder / / + +WORKDIR /app + +USER php + +STOPSIGNAL SIGQUIT + +CMD ["/usr/bin/php", "-v"]