diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f85e6eb..59f66b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: fail-fast: false matrix: os_name: ["alpine"] - php_version: ["8.1", "8.2", "8.3"] + php_version: ["8.1", "8.2", "8.3", "8.4"] php_type: ["fpm", "cli", "supervisord"] builder: [{arch: "amd64", os: "ubuntu-latest"}, {arch: "arm64", os: "ubuntu-latest"}] runs-on: ${{ matrix.builder.os }} diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ad733c7..2bcd7ef 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -21,7 +21,7 @@ jobs: fail-fast: false matrix: os_name: ["alpine"] - php_version: ["8.1", "8.2", "8.3"] + php_version: ["8.1", "8.2", "8.3", "8.4"] php_type: ["fpm", "cli", "supervisord"] builder: [{arch: "amd64", os: "ubuntu-latest"}] runs-on: ${{ matrix.builder.os }} diff --git a/Makefile b/Makefile index e27840d..1c23a9f 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ export COMPOSE_DOCKER_CLI_BUILD ?= 1 DOCKER ?= docker IMAGE_NAMESPACE ?= wayofdev/php-base -IMAGE_TEMPLATE ?= 8.3-fpm-alpine +IMAGE_TEMPLATE ?= 8.4-fpm-alpine IMAGE_TAG ?= $(IMAGE_NAMESPACE):$(IMAGE_TEMPLATE)-latest DOCKERFILE_DIR ?= ./dist/base/$(IMAGE_TEMPLATE) diff --git a/README.md b/README.md index 43eb652..dba8117 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ The `docker-php-base` project is a **system** for creating and maintaining **PHP Docker images**. -It uses **Ansible** to generate **Dockerfiles** for multiple PHP versions (7.4, 8.0, **8.1, 8.2, 8.3**) and types (**CLI, FPM, Supervisord**) on **Alpine Linux**. +It uses **Ansible** to generate **Dockerfiles** for multiple PHP versions (7.4, 8.0, **8.1, 8.2, 8.3, 8.4**) and types (**CLI, FPM, Supervisord**) on **Alpine Linux**. The project automates the build process using **GitHub Actions**, creating multi-architecture images (**AMD64** and **ARM64**) that are tested with [goss](https://github.com/goss-org/goss). @@ -37,7 +37,7 @@ If you **like/use** this package, please consider ⭐️ **starring** it. Thanks ## 🚀 Features -- **Multiple PHP Versions:** Supports PHP 7.4, 8.0, 8.1, 8.2, and 8.3. +- **Multiple PHP Versions:** Supports PHP 7.4, 8.0, 8.1, 8.2, 8.3 and **8.4**. - **Various PHP Types:** Includes CLI, FPM, and Supervisord configurations. - **Alpine-based:** Lightweight images built on Alpine Linux. - **Pre-configured Extensions:** Comes with a wide range of pre-installed PHP extensions. @@ -57,7 +57,7 @@ If you **like/use** this package, please consider ⭐️ **starring** it. Thanks - **GitHub Actions:** CI/CD pipeline for automated building, testing, and publishing. - **dgoss:** For Docker image testing. - **Alpine Linux:** Base OS for the Docker images. -- **PHP:** Core language with multiple versions (7.4, 8.0, 8.1, 8.2, 8.3). +- **PHP:** Core language with multiple versions (7.4, 8.0, 8.1, 8.2, 8.3, 8.4).
@@ -109,7 +109,7 @@ Replace `8.3-fpm-alpine-latest` with your desired PHP version, type, and tag. The images are available in various combinations of PHP versions, types, and architectures: -- **PHP Versions:** 8.1, 8.2, 8.3 +- **PHP Versions:** 8.1, 8.2, 8.3, 8.4 - **Types:** cli, fpm, supervisord - **Architectures:** amd64, arm64 @@ -203,6 +203,9 @@ make generate make build IMAGE_TEMPLATE="8.3-cli-alpine" make build IMAGE_TEMPLATE="8.3-fpm-alpine" make build IMAGE_TEMPLATE="8.3-supervisord-alpine" + make build IMAGE_TEMPLATE="8.4-cli-alpine" + make build IMAGE_TEMPLATE="8.4-fpm-alpine" + make build IMAGE_TEMPLATE="8.4-supervisord-alpine" ``` These commands will build all supported image variants. @@ -303,6 +306,9 @@ You can run tests using the following commands: make test IMAGE_TEMPLATE="8.3-cli-alpine" make test IMAGE_TEMPLATE="8.3-fpm-alpine" make test IMAGE_TEMPLATE="8.3-supervisord-alpine" + make test IMAGE_TEMPLATE="8.4-cli-alpine" + make test IMAGE_TEMPLATE="8.4-fpm-alpine" + make test IMAGE_TEMPLATE="8.4-supervisord-alpine" ``` ### → Test Configuration diff --git a/docker-bake.hcl b/docker-bake.hcl index d233277..bfba341 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -71,6 +71,27 @@ target "php-83-supervisord-alpine" { dockerfile = "./Dockerfile" } +########################### +## PHP 8.4 +########################### +target "php-84-cli-alpine" { + inherits = ["docker-metadata-action"] + context = "dist/base/8.4-cli-alpine" + dockerfile = "./Dockerfile" +} + +target "php-84-fpm-alpine" { + inherits = ["docker-metadata-action"] + context = "dist/base/8.4-fpm-alpine" + dockerfile = "./Dockerfile" +} + +target "php-84-supervisord-alpine" { + inherits = ["docker-metadata-action"] + context = "dist/base/8.4-supervisord-alpine" + dockerfile = "./Dockerfile" +} + group "all" { targets = [ "php-81-cli-alpine", @@ -82,6 +103,9 @@ group "all" { "php-83-cli-alpine", "php-83-fpm-alpine", "php-83-supervisord-alpine", + "php-84-cli-alpine", + "php-84-fpm-alpine", + "php-84-supervisord-alpine", ] } @@ -108,3 +132,11 @@ group "php-83" { "php-83-supervisord-alpine", ] } + +group "php-84" { + targets = [ + "php-84-cli-alpine", + "php-84-fpm-alpine", + "php-84-supervisord-alpine", + ] +} diff --git a/src/inventory.yml b/src/inventory.yml index b4f8771..af53695 100644 --- a/src/inventory.yml +++ b/src/inventory.yml @@ -114,5 +114,27 @@ all: php_type: supervisord os_name: alpine os_version: 3.20 + # PHP 8.4 + 8.4-cli-alpine: + ansible_connection: local + level: base + php_version: 8.4 + php_type: cli + os_name: alpine + os_version: 3.20 + 8.4-fpm-alpine: + ansible_connection: local + level: base + php_version: 8.4 + php_type: fpm + os_name: alpine + os_version: 3.20 + 8.4-supervisord-alpine: + ansible_connection: local + level: base + php_version: 8.4 + php_type: supervisord + os_name: alpine + os_version: 3.20 ...