diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..5e3d9ca
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,3 @@
+---
+github: [cytopia]
+patreon: devilbox
diff --git a/.github/workflows/params.yml b/.github/workflows/params.yml
index 5e89f8f..7852dcf 100644
--- a/.github/workflows/params.yml
+++ b/.github/workflows/params.yml
@@ -53,7 +53,7 @@ jobs:
with:
repository_default_branch: master
branches: master
- num_latest_tags: 1
+ num_latest_tags: 0
if: github.event_name == 'schedule'
- name: "[DEBUG] Show settings'"
diff --git a/Dockerfile b/Dockerfiles/Dockerfile
similarity index 100%
rename from Dockerfile
rename to Dockerfiles/Dockerfile
diff --git a/data/docker-php-entrypoint b/Dockerfiles/data/docker-php-entrypoint
similarity index 100%
rename from data/docker-php-entrypoint
rename to Dockerfiles/data/docker-php-entrypoint
diff --git a/data/docker-php-ext-configure b/Dockerfiles/data/docker-php-ext-configure
similarity index 100%
rename from data/docker-php-ext-configure
rename to Dockerfiles/data/docker-php-ext-configure
diff --git a/data/docker-php-ext-enable b/Dockerfiles/data/docker-php-ext-enable
similarity index 100%
rename from data/docker-php-ext-enable
rename to Dockerfiles/data/docker-php-ext-enable
diff --git a/data/docker-php-ext-install b/Dockerfiles/data/docker-php-ext-install
similarity index 100%
rename from data/docker-php-ext-install
rename to Dockerfiles/data/docker-php-ext-install
diff --git a/data/docker-php-source b/Dockerfiles/data/docker-php-source
similarity index 100%
rename from data/docker-php-source
rename to Dockerfiles/data/docker-php-source
diff --git a/data/php.ini b/Dockerfiles/data/php.ini
similarity index 100%
rename from data/php.ini
rename to Dockerfiles/data/php.ini
diff --git a/Makefile b/Makefile
index 867757d..6200cad 100644
--- a/Makefile
+++ b/Makefile
@@ -27,13 +27,13 @@ TAG = latest
NAME = PHP
VERSION = 8.3
IMAGE = devilbox/php-fpm-$(VERSION)
-DIR = .
+DIR = Dockerfiles
FILE = Dockerfile
DOCKER_TAG = $(TAG)
ARCH = linux/amd64
# Makefile.lint overwrites
-FL_IGNORES = .git/,.github/,tests/,data/
+FL_IGNORES = .git/,.github/,tests/,Dockerfiles/data/
SC_IGNORES = .git/,.github/,tests/
@@ -92,7 +92,7 @@ _test-integration:
.PHONY: update-readme
update-readme:
cat "./README.md" \
- | perl -0 -pe "s/.*/\n$$(./tests/get-modules.sh $(IMAGE) $(NAME) $(VERSION) $(DOCKER_TAG) $(ARCH))\n/s" \
+ | perl -0 -pe "s#.*#\n$$(./tests/get-modules.sh $(IMAGE) $(NAME) $(VERSION) $(DOCKER_TAG) $(ARCH))\n#s" \
> "./README.md.tmp"
yes | mv -f "./README.md.tmp" "./README.md"
git diff --quiet || { echo "Build Changes"; git diff; git status; false; }
diff --git a/README.md b/README.md
index f4dffc5..f53a685 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,7 @@
# PHP-FPM 8.3
[![Tag](https://img.shields.io/github/tag/devilbox/docker-php-fpm-8.3.svg)](https://github.com/devilbox/docker-php-fpm-8.3/releases)
+[![](https://img.shields.io/badge/github-devilbox%2Fdocker--php--fpm--8.3-red.svg)](https://github.com/devilbox/docker-php-fpm-8.3 "github.com/devilbox/docker-php-fpm-8.3")
[![lint](https://github.com/devilbox/docker-php-fpm-8.3/workflows/lint/badge.svg)](https://github.com/devilbox/docker-php-fpm-8.3/actions?query=workflow%3Alint)
[![build](https://github.com/devilbox/docker-php-fpm-8.3/workflows/build/badge.svg)](https://github.com/devilbox/docker-php-fpm-8.3/actions?query=workflow%3Abuild)
[![nightly](https://github.com/devilbox/docker-php-fpm-8.3/workflows/nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm-8.3/actions?query=workflow%3Anightly)
@@ -13,81 +14,165 @@
[![](https://img.shields.io/docker/pulls/devilbox/php-fpm-8.3.svg)](https://hub.docker.com/r/devilbox/php-fpm-8.3)
+
This repository will provide you a fully functional PHP-FPM 8.3 Docker image built from [official sources](https://github.com/php/php-src) nightly. It provides the base for [Devilbox PHP-FPM Docker images](https://github.com/devilbox/docker-php-fpm).
-| Reference Project |
-|-------------------|
-| |
+> ##### ๐ฑ GitHub: [devilbox/docker-php-fpm-8.3](https://github.com/devilbox/docker-php-fpm-8.3)
-## Similar Base Images
+| Upstream Project | Reference Implementation |
+|:----------------:|:------------------------:|
+| | |
+| Streamlined [PHP-FPM](https://github.com/devilbox/docker-php-fpm) images | The [Devilbox](https://github.com/cytopia/devilbox) |
-Have a look at the following similar Devilbox base images for which no official versions exist yet:
-* [PHP-FPM 5.2](https://github.com/devilbox/docker-php-fpm-5.2)
-* [PHP-FPM 5.3](https://github.com/devilbox/docker-php-fpm-5.3)
-* [PHP-FPM 7.4](https://github.com/devilbox/docker-php-fpm-7.4)
-* [PHP-FPM 8.0](https://github.com/devilbox/docker-php-fpm-8.0)
-* [PHP-FPM 8.1](https://github.com/devilbox/docker-php-fpm-8.1)
-* [PHP-FPM 8.2](https://github.com/devilbox/docker-php-fpm-8.2)
-* [PHP-FPM 8.3](https://github.com/devilbox/docker-php-fpm-8.3)
-In case you are looking for development and production ready PHP-FPM images for all versions,
-which have a vast amount of modules enabled by default go here:
+## ๐ Available Docker tags
-* [PHP-FPM](https://github.com/devilbox/docker-php-fpm)
+[![](https://img.shields.io/docker/pulls/devilbox/php-fpm-8.3.svg)](https://hub.docker.com/r/devilbox/php-fpm-8.3)
-## Documentation
+[`latest`][tag_latest]
+```bash
+docker pull devilbox/php-fpm-8.3
+```
-In case you seek help, go and visit the community pages.
+#### Rolling releases
-
+The following Docker image tags are rolling releases and are built and updated every night.
+
+[![nightly](https://github.com/devilbox/docker-php-fpm-8.3/workflows/nightly/badge.svg)](https://github.com/devilbox/docker-php-fpm-8.3/actions?query=workflow%3Anightly)
+
+| Docker Tag | Git Ref | Available Architectures |
+|---------------------------------|--------------|-----------------------------------------------|
+| **[`latest`][tag_latest]** | master | `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6` |
+
+[tag_latest]: https://github.com/devilbox/docker-php-fpm-8.3/blob/master/Dockerfiles/Dockerfile
+
+
+#### Point in time releases
+
+The following Docker image tags are built once and can be used for reproducible builds. Its version never changes so you will have to update tags in your pipelines from time to time in order to stay up-to-date.
+
+[![build](https://github.com/devilbox/docker-php-fpm-8.3/workflows/build/badge.svg)](https://github.com/devilbox/docker-php-fpm-8.3/actions?query=workflow%3Abuild)
+
+| Docker Tag | Git Ref | Available Architectures |
+|---------------------------------|--------------|-----------------------------------------------|
+| **[``][tag_latest]** | git: `` | `amd64`, `i386`, `arm64`, `arm/v7`, `arm/v6` |
+
+> ๐ Where `` refers to the chosen git tag from this repository.
+
+
+## โ Environment Variables
+
+None
+
+
+## ๐ง Exposed Ports
+
+PHP-FPM listening port `9000`
+
+
+## ๐ Volumes
+
+None
+
+
+## โฐ Available Extensions
+
+If you need a dockerized version of **PHP 8.3** or **PHP-FPM 8.3** which provides a vast amount of
+extensions enabled by default visit: **[devilbox/docker-php-fpm](https://github.com/devilbox/docker-php-fpm)**
+
+> ๐ Click below listed extensions for details:
+
+
+| Extension | Built-in |
+|--------------------------------|-----------|
+| [ctype][lnk_ctype] | โ |
+| [curl][lnk_curl] | โ |
+| [date][lnk_date] | โ |
+| [dom][lnk_dom] | โ |
+| [FFI][lnk_ffi] | โ |
+| [fileinfo][lnk_fileinfo] | โ |
+| [filter][lnk_filter] | โ |
+| [ftp][lnk_ftp] | โ |
+| [hash][lnk_hash] | โ |
+| [iconv][lnk_iconv] | โ |
+| [json][lnk_json] | โ |
+| [libxml][lnk_libxml] | โ |
+| [mbstring][lnk_mbstring] | โ |
+| [mysqlnd][lnk_mysqlnd] | โ |
+| [openssl][lnk_openssl] | โ |
+| [pcre][lnk_pcre] | โ |
+| [PDO][lnk_pdo] | โ |
+| [pdo_sqlite][lnk_pdo_sqlite] | โ |
+| [Phar][lnk_phar] | โ |
+| [posix][lnk_posix] | โ |
+| [random][lnk_random] | โ |
+| [readline][lnk_readline] | โ |
+| [Reflection][lnk_reflection] | โ |
+| [session][lnk_session] | โ |
+| [SimpleXML][lnk_simplexml] | โ |
+| [sodium][lnk_sodium] | โ |
+| [SPL][lnk_spl] | โ |
+| [sqlite3][lnk_sqlite3] | โ |
+| [tokenizer][lnk_tokenizer] | โ |
+| [xml][lnk_xml] | โ |
+| [xmlreader][lnk_xmlreader] | โ |
+| [xmlwriter][lnk_xmlwriter] | โ |
+| [zlib][lnk_zlib] | โ |
+
+[lnk_ctype]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/ctype
+[lnk_curl]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/curl
+[lnk_date]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/date
+[lnk_dom]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/dom
+[lnk_ffi]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/ffi
+[lnk_fileinfo]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/fileinfo
+[lnk_filter]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/filter
+[lnk_ftp]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/ftp
+[lnk_hash]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/hash
+[lnk_iconv]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/iconv
+[lnk_json]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/json
+[lnk_libxml]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/libxml
+[lnk_mbstring]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/mbstring
+[lnk_mysqlnd]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/mysqlnd
+[lnk_openssl]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/openssl
+[lnk_pcre]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/pcre
+[lnk_pdo]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/pdo
+[lnk_pdo_sqlite]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/pdo_sqlite
+[lnk_phar]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/phar
+[lnk_posix]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/posix
+[lnk_random]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/random
+[lnk_readline]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/readline
+[lnk_reflection]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/reflection
+[lnk_session]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/session
+[lnk_simplexml]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/simplexml
+[lnk_sodium]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/sodium
+[lnk_spl]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/spl
+[lnk_sqlite3]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/sqlite3
+[lnk_tokenizer]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/tokenizer
+[lnk_xml]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/xml
+[lnk_xmlreader]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/xmlreader
+[lnk_xmlwriter]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/xmlwriter
+[lnk_zlib]: https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/zlib
+
-## Build
+## โข Build
+
+Build the Docker image locally
```bash
-# Build the Docker image locally
make build
-
-# Rebuild the Docker image locally without cache
+```
+Rebuild the Docker image locally without cache
+```bash
make rebuild
-
-# Test the Docker image after building
+```
+Test the Docker image after building
+```bash
make test
```
-## Usage
+
+## ๐ณ Usage
Add the following `FROM` line into your Dockerfile:
@@ -95,52 +180,8 @@ Add the following `FROM` line into your Dockerfile:
FROM devilbox/php-fpm-8.3:latest
```
-## Available Modules
-If you need a dockerized version of **PHP 8.3** or **PHP-FPM 8.3** which provides a vast amount of
-modules enabled by default visit: **[devilbox/docker-php-fpm](https://github.com/devilbox/docker-php-fpm)**
-
-
-| Module | Built-in |
-|--------------|-----------|
-| Core | โ |
-| ctype | โ |
-| curl | โ |
-| date | โ |
-| dom | โ |
-| FFI | โ |
-| fileinfo | โ |
-| filter | โ |
-| ftp | โ |
-| hash | โ |
-| iconv | โ |
-| json | โ |
-| libxml | โ |
-| mbstring | โ |
-| mysqlnd | โ |
-| openssl | โ |
-| pcre | โ |
-| PDO | โ |
-| pdo_sqlite | โ |
-| Phar | โ |
-| posix | โ |
-| random | โ |
-| readline | โ |
-| Reflection | โ |
-| session | โ |
-| SimpleXML | โ |
-| sodium | โ |
-| SPL | โ |
-| sqlite3 | โ |
-| standard | โ |
-| tokenizer | โ |
-| xml | โ |
-| xmlreader | โ |
-| xmlwriter | โ |
-| zlib | โ |
-
-
-## Example
+## ๐ก Examples
Create a temporary directory, navigate into it and copy/paste the commands below to get started.
@@ -152,7 +193,7 @@ echo " htdocs/index.php
#### 2. Start PHP container
```bash
-docker run -d --rm --name devilbox-php-fpm-8-3 \
+docker run -d --rm --name devilbox-php-fpm-8.3 \
-v $(pwd)/htdocs:/var/www/default/htdocs devilbox/php-fpm-8.3
```
@@ -161,9 +202,9 @@ docker run -d --rm --name devilbox-php-fpm-8-3 \
docker run -d --rm --name devilbox-nginx-stable \
-v $(pwd)/htdocs:/var/www/default/htdocs \
-e PHP_FPM_ENABLE=1 \
- -e PHP_FPM_SERVER_ADDR=devilbox-php-fpm-8-3 \
+ -e PHP_FPM_SERVER_ADDR=devilbox-php-fpm-8.3 \
-p 8080:80 \
- --link devilbox-php-fpm-8-3 \
+ --link devilbox-php-fpm-8.3 \
devilbox/nginx-stable
```
@@ -171,7 +212,130 @@ docker run -d --rm --name devilbox-nginx-stable \
Open up your browser at http://127.0.0.1:8080
-## License
+
+## ๐ Similar Base Images
+
+Have a look at the following similar Devilbox base images for which no official versions exist yet:
+
+* **[`PHP-FPM 5.2`](https://github.com/devilbox/docker-php-fpm-5.2)** **[`PHP-FPM 5.3`](https://github.com/devilbox/docker-php-fpm-5.3)** **[`PHP-FPM 5.4`](https://github.com/devilbox/docker-php-fpm-5.4)** **[`PHP-FPM 5.5`](https://github.com/devilbox/docker-php-fpm-5.5)**
+* **[`PHP-FPM 8.0`](https://github.com/devilbox/docker-php-fpm-8.0)** **[`PHP-FPM 8.1`](https://github.com/devilbox/docker-php-fpm-8.1)** **[`PHP-FPM 8.2`](https://github.com/devilbox/docker-php-fpm-8.2)** **[`PHP-FPM 8.3`](https://github.com/devilbox/docker-php-fpm-8.2)**
+
+In case you are looking for development and production ready PHP-FPM images for all versions,
+which have a vast amount of modules enabled by default go here: **[PHP-FPM](https://github.com/devilbox/docker-php-fpm)**
+
+> ๐ For details see **[Documentation: Base Images](https://github.com/devilbox/docker-php-fpm/blob/master/doc/base-images.md)**
+
+
+## ๐ค Sister Projects
+
+Show some love for the following sister projects.
+
+
+
+
+## ๐ซ Community
+
+In case you seek help, go and visit the community pages.
+
+
+
+
+## ๐ง Maintainer
+
+**[@cytopia](https://github.com/cytopia)**
+
+I try to keep with literally **over 100 projects** besides a full-time job.
+If my work is making your life easier, consider contributing. ๐ค
+
+* [GitHub Sponsorship](https://github.com/sponsors/cytopia)
+* [Patreon](https://www.patreon.com/devilbox)
+* [Open Collective](https://opencollective.com/devilbox)
+
+**Findme:**
+**๐ฑ** [cytopia](https://github.com/cytopia) / [devilbox](https://github.com/devilbox) |
+**๐** [cytopia](https://hub.docker.com/r/cytopia/) / [devilbox](https://hub.docker.com/r/devilbox/) |
+**๐ฆ** [everythingcli](https://twitter.com/everythingcli) / [devilbox](https://twitter.com/devilbox) |
+**๐** [everythingcli.org](http://www.everythingcli.org/)
+
+**Contrib:** PyPI: [cytopia](https://pypi.org/user/cytopia/) **ยท**
+Terraform: [cytopia](https://registry.terraform.io/namespaces/cytopia) **ยท**
+Ansible: [cytopia](https://galaxy.ansible.com/cytopia)
+
+
+## ๐ License
**[MIT License](LICENSE)**
diff --git a/tests/get-modules.sh b/tests/get-modules.sh
index 641444b..55e597f 100755
--- a/tests/get-modules.sh
+++ b/tests/get-modules.sh
@@ -16,9 +16,26 @@ MODULES="$( docker run --rm -t --platform "${ARCH}" --entrypoint=php "${IMAGE}:$
| sort -u -f
)"
-echo "| Module | Built-in |"
-echo "|--------------|-----------|"
+echo "| Extension | Built-in |"
+echo "|--------------------------------|-----------|"
echo "${MODULES}" | while read -r line; do
- line="$( echo "${line}" | sed 's/\r//g' | xargs )"
- printf "| %-12s | โ |\n" "${line}"
+ name="$( printf "%s" "${line}" )"
+ nick="$( echo "${name}" | awk '{print tolower($0)}' | sed 's/\r//g' | xargs )"
+ link="$( echo "[${name}][lnk_${nick}]" | sed 's/\r//g' | xargs )"
+ if [ "${nick}" = "core" ] || [ "${nick}" = "standard" ]; then
+ continue
+ fi
+ printf "| %-30s | โ |\n" "${link}"
+done
+echo
+
+echo "${MODULES}" | while read -r line; do
+ name="$( printf "%s" "${line}" )"
+ nick="$( echo "${name}" | awk '{print tolower($0)}' | sed 's/\r//g' | xargs )"
+ link="$( printf "%s" "[lnk_${nick}]" | sed 's/\r//g' | xargs )"
+ addr="$( printf "%s: %s" "${link}" "https://github.com/devilbox/docker-php-fpm/tree/master/php_modules/${nick}" | sed 's/\r//g' | xargs )"
+ if [ "${nick}" = "core" ] || [ "${nick}" = "standard" ]; then
+ continue
+ fi
+ printf "%s\n" "${addr}"
done