Skip to content

PHP 8.4 is now stable #73

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Nov 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 8 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Images for local development in [LAMP devstack](https://en.wikipedia.org/wiki/LA

## Main features
- architecture: `linux/amd64`
- current **PHP** versions: 8.3, 8.2 and 8.1 and RC pre-release of 8.4
- current **PHP** versions: 8.4, 8.3, 8.2 and 8.1
- unsupported **PHP** versions also available: 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.6, 5.5 and 5.4 (with limited stability,
unoptimized, unmaintained)
- current versions of **MariaDB** 11.5, 11.4, 11.2, 10.11, 10.6, 10.5, and RC pre-release of 11.6
Expand Down Expand Up @@ -94,8 +94,8 @@ my_project/ <-- project's root
Images are tagged by the cascaded SemVer:
- `jakubboucek/lamp-devstack-php:latest` – means `latest` available stable PHP image,
- `jakubboucek/lamp-devstack-php:8` – represents the highest PHP image of `8` version, but lower than `9.0.0`,
- `jakubboucek/lamp-devstack-php:8.3` – represents the highest PHP image of `8.3` version, but lower than `8.4.0`,
- `jakubboucek/lamp-devstack-php:8.3.0` – represents most specific PHP image, directly version `8.3.0`.
- `jakubboucek/lamp-devstack-php:8.4` – represents the highest PHP image of `8.4` version, but lower than `8.5.0`,
- `jakubboucek/lamp-devstack-php:8.4.0` – represents most specific PHP image, directly version `8.4.0`.

**Legacy PHP** images are tagged using different strategy, only latest revision for each minor version is available,
use `-legacy` tag suffix:
Expand All @@ -115,28 +115,19 @@ use `-legacy` tag suffix:
All PHP images have alternative variants with XDebug extension preinstalled, use `-debug` tag suffix, example:
- `jakubboucek/lamp-devstack-php:debug`
- `jakubboucek/lamp-devstack-php:8-debug`
- `jakubboucek/lamp-devstack-php:8.3-debug`
- `jakubboucek/lamp-devstack-php:8.3.0-debug`
- `jakubboucek/lamp-devstack-php:8.4.0-rc-cli`
- `jakubboucek/lamp-devstack-php:8.4-debug`
- `jakubboucek/lamp-devstack-php:8.4.0-debug`
- `jakubboucek/lamp-devstack-php:7.4-legacy-debug`

> Note: (Pre-release of PHP 8.4 contains unstable version of Xdebug)
> Note: (PHP 8.4 temporary contains beta version of Xdebug)

All PHP images also have alternative CLI variants, use `-cli` tag suffix, example:
- `jakubboucek/lamp-devstack-php:cli`
- `jakubboucek/lamp-devstack-php:8-cli`
- `jakubboucek/lamp-devstack-php:8.3-cli`
- `jakubboucek/lamp-devstack-php:8.3.0-cli`
- `jakubboucek/lamp-devstack-php:8.4-cli`
- `jakubboucek/lamp-devstack-php:8.4.0-cli`
- `jakubboucek/lamp-devstack-php:7.4-legacy-cli`

The RC pre-release of PHP 8.4 images have the `-rc` suffix, example:
- `jakubboucek/lamp-devstack-php:8.4-rc`
- `jakubboucek/lamp-devstack-php:8.4-0-rc`
- `jakubboucek/lamp-devstack-php:8.4-0-rc-RC2`
- `jakubboucek/lamp-devstack-php:8.4-rc-cli`
- `jakubboucek/lamp-devstack-php:8.4-0-rc-cli`
- `jakubboucek/lamp-devstack-php:8.4-0-rc-RC2-cli`

### Using MySQL
MySQL server starts at the same time as the web server.

Expand Down
2 changes: 1 addition & 1 deletion build-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This note is not necessary for USE images, it's for BUILD him.
Run [`build-php.sh`](build-php.sh) script to build all of PHP versions.

To build only specific PHP version run only the target script on [`php` folder](php), for example:
[`php/build-php-8.3.sh`](php/build-php-8.3.sh)
[`php/build-php-8.4.sh`](php/build-php-8.4.sh)

To build older PHP versions run [`php/legacy/build-php-legacy.sh`](php/legacy/build-php-legacy.sh).

Expand Down
4 changes: 2 additions & 2 deletions check-pulls.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ docker pull php:8.2-cli-bookworm
docker pull php:8.2-apache-bookworm
docker pull php:8.3-cli-bookworm
docker pull php:8.3-apache-bookworm
docker pull php:8.4-rc-cli-bookworm
docker pull php:8.4-rc-apache-bookworm
docker pull php:8.4-cli-bookworm
docker pull php:8.4-apache-bookworm

docker pull mariadb:10.5
docker pull mariadb:10.6
Expand Down
4 changes: 2 additions & 2 deletions php/Dockerfile-8.4
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM php:8.4-rc-apache-bookworm
FROM php:8.4-apache-bookworm

LABEL maintainer="Jakub Bouček <[email protected]>"
LABEL org.label-schema.name="PHP 8.4 (Pre-release, Apache module)"
LABEL org.label-schema.name="PHP 8.4 (Apache module)"
LABEL org.label-schema.vcs-url="https://github.com/jakubboucek/docker-lamp-devstack"

# Workdir during installation
Expand Down
4 changes: 2 additions & 2 deletions php/Dockerfile-8.4-cli
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM php:8.4-rc-cli-bookworm
FROM php:8.4-cli-bookworm

LABEL maintainer="Jakub Bouček <[email protected]>"
LABEL org.label-schema.name="PHP 8.4 (Pre-release, CLI)"
LABEL org.label-schema.name="PHP 8.4 (CLI)"
LABEL org.label-schema.vcs-url="https://github.com/jakubboucek/docker-lamp-devstack"

# Workdir during installation
Expand Down
4 changes: 2 additions & 2 deletions php/Dockerfile-8.4-debug
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM jakubboucek/lamp-devstack-php:8.4-rc
FROM jakubboucek/lamp-devstack-php:8.4

LABEL org.label-schema.name="PHP 8.4 (Pre-release, Apache module + Xdebug)"
LABEL org.label-schema.name="PHP 8.4 (Apache module + Xdebug)"

# Configure Xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
Expand Down
4 changes: 0 additions & 4 deletions php/build-php-8.3-cli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ fi
if [ "${NO_BUILD:-0}" -ne "1" ]; then
docker build --progress plain -f ./Dockerfile-8.3-cli -t jakubboucek/lamp-devstack-php:8.3-cli ./
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.3-cli php -r "echo PHP_RELEASE_VERSION;")
docker tag jakubboucek/lamp-devstack-php:8.3-cli jakubboucek/lamp-devstack-php:cli
docker tag jakubboucek/lamp-devstack-php:8.3-cli jakubboucek/lamp-devstack-php:8-cli
docker tag jakubboucek/lamp-devstack-php:8.3-cli jakubboucek/lamp-devstack-php:8.3.${PHP_RELEASE}-cli
fi

Expand All @@ -29,6 +27,4 @@ if [ "${NO_PUSH:-0}" -ne "1" ]; then
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.3-cli php -r "echo PHP_RELEASE_VERSION;")
docker push jakubboucek/lamp-devstack-php:8.3.${PHP_RELEASE}-cli
docker push jakubboucek/lamp-devstack-php:8.3-cli
docker push jakubboucek/lamp-devstack-php:8-cli
docker push jakubboucek/lamp-devstack-php:cli
fi
8 changes: 0 additions & 8 deletions php/build-php-8.3.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,7 @@ if [ "${NO_BUILD:-0}" -ne "1" ]; then
docker build --progress plain -f ./Dockerfile-8.3 -t jakubboucek/lamp-devstack-php:8.3 ./
docker build --progress plain -f ./Dockerfile-8.3-debug -t jakubboucek/lamp-devstack-php:8.3-debug ./
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.3 php -r "echo PHP_RELEASE_VERSION;")
docker tag jakubboucek/lamp-devstack-php:8.3 jakubboucek/lamp-devstack-php:latest
docker tag jakubboucek/lamp-devstack-php:8.3 jakubboucek/lamp-devstack-php:8
docker tag jakubboucek/lamp-devstack-php:8.3 jakubboucek/lamp-devstack-php:8.3.${PHP_RELEASE}
docker tag jakubboucek/lamp-devstack-php:8.3-debug jakubboucek/lamp-devstack-php:debug
docker tag jakubboucek/lamp-devstack-php:8.3-debug jakubboucek/lamp-devstack-php:8-debug
docker tag jakubboucek/lamp-devstack-php:8.3-debug jakubboucek/lamp-devstack-php:8.3.${PHP_RELEASE}-debug
fi

Expand All @@ -35,10 +31,6 @@ if [ "${NO_PUSH:-0}" -ne "1" ]; then
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.3 php -r "echo PHP_RELEASE_VERSION;")
docker push jakubboucek/lamp-devstack-php:8.3.${PHP_RELEASE}-debug
docker push jakubboucek/lamp-devstack-php:8.3-debug
docker push jakubboucek/lamp-devstack-php:8-debug
docker push jakubboucek/lamp-devstack-php:debug
docker push jakubboucek/lamp-devstack-php:8.3.${PHP_RELEASE}
docker push jakubboucek/lamp-devstack-php:8.3
docker push jakubboucek/lamp-devstack-php:8
docker push jakubboucek/lamp-devstack-php:latest
fi
36 changes: 16 additions & 20 deletions php/build-php-8.4-cli.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,30 @@ set -eux;

cd "$(dirname $0)";

### PHP 8.4-rc
### PHP 8.4
if [ "${NO_PULL:-0}" -ne "1" ]; then
docker pull php:8.4-rc-cli-bookworm
docker run --rm php:8.4-rc-cli-bookworm php --version
docker pull php:8.4-cli-bookworm
docker run --rm php:8.4-cli-bookworm php --version
fi

if [ "${NO_BUILD:-0}" -ne "1" ]; then
docker build --progress plain -f ./Dockerfile-8.4-cli -t jakubboucek/lamp-devstack-php:8.4-rc-cli ./
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php -r "echo PHP_RELEASE_VERSION;")
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php -r "echo PHP_EXTRA_VERSION;")
# docker tag jakubboucek/lamp-devstack-php:8.4-rc-cli jakubboucek/lamp-devstack-php:cli
# docker tag jakubboucek/lamp-devstack-php:8.4-rc-cli jakubboucek/lamp-devstack-php:8-cli
docker tag jakubboucek/lamp-devstack-php:8.4-rc-cli jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-cli
docker tag jakubboucek/lamp-devstack-php:8.4-rc-cli jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}-cli
docker build --progress plain -f ./Dockerfile-8.4-cli -t jakubboucek/lamp-devstack-php:8.4-cli ./
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-cli php -r "echo PHP_RELEASE_VERSION;")
docker tag jakubboucek/lamp-devstack-php:8.4-cli jakubboucek/lamp-devstack-php:cli
docker tag jakubboucek/lamp-devstack-php:8.4-cli jakubboucek/lamp-devstack-php:8-cli
docker tag jakubboucek/lamp-devstack-php:8.4-cli jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-cli
fi

if [ "${NO_TEST:-0}" -ne "1" ]; then
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php --version
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php -r "var_export(gd_info()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4-cli php --version
docker run --rm jakubboucek/lamp-devstack-php:8.4-cli php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4-cli php -r "var_export(gd_info()) . PHP_EOL;"
fi

if [ "${NO_PUSH:-0}" -ne "1" ]; then
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php -r "echo PHP_RELEASE_VERSION;")
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-cli php -r "echo PHP_EXTRA_VERSION;")
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}-cli
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-cli
docker push jakubboucek/lamp-devstack-php:8.4-rc-cli
# docker push jakubboucek/lamp-devstack-php:8-cli
# docker push jakubboucek/lamp-devstack-php:cli
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-cli php -r "echo PHP_RELEASE_VERSION;")
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-cli
docker push jakubboucek/lamp-devstack-php:8.4-cli
docker push jakubboucek/lamp-devstack-php:8-cli
docker push jakubboucek/lamp-devstack-php:cli
fi
57 changes: 26 additions & 31 deletions php/build-php-8.4.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,45 +5,40 @@ set -eux;

cd "$(dirname $0)";

### PHP 8.4-rc
### PHP 8.4
if [ "${NO_PULL:-0}" -ne "1" ]; then
docker pull php:8.4-rc-apache-bookworm
docker run --rm php:8.4-rc-apache-bookworm php --version
docker pull php:8.4-apache-bookworm
docker run --rm php:8.4-apache-bookworm php --version
fi

if [ "${NO_BUILD:-0}" -ne "1" ]; then
docker build --progress plain -f ./Dockerfile-8.4 -t jakubboucek/lamp-devstack-php:8.4-rc ./
docker build --progress plain -f ./Dockerfile-8.4-debug -t jakubboucek/lamp-devstack-php:8.4-rc-debug ./
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php -r "echo PHP_RELEASE_VERSION;")
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php -r "echo PHP_EXTRA_VERSION;")
# docker tag jakubboucek/lamp-devstack-php:8.4-rc jakubboucek/lamp-devstack-php:8
# docker tag jakubboucek/lamp-devstack-php:8.4-rc jakubboucek/lamp-devstack-php:latest
docker tag jakubboucek/lamp-devstack-php:8.4-rc jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc
docker tag jakubboucek/lamp-devstack-php:8.4-rc jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}
# docker tag jakubboucek/lamp-devstack-php:8.4-rc-debug jakubboucek/lamp-devstack-php:debug
# docker tag jakubboucek/lamp-devstack-php:8.4-rc-debug jakubboucek/lamp-devstack-php:8-debug
docker tag jakubboucek/lamp-devstack-php:8.4-rc-debug jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-debug
docker tag jakubboucek/lamp-devstack-php:8.4-rc-debug jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-debug-${PHP_RELEASE_EXTRA}
docker build --progress plain -f ./Dockerfile-8.4 -t jakubboucek/lamp-devstack-php:8.4 ./
docker build --progress plain -f ./Dockerfile-8.4-debug -t jakubboucek/lamp-devstack-php:8.4-debug ./
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4 php -r "echo PHP_RELEASE_VERSION;")
docker tag jakubboucek/lamp-devstack-php:8.4 jakubboucek/lamp-devstack-php:8
docker tag jakubboucek/lamp-devstack-php:8.4 jakubboucek/lamp-devstack-php:latest
docker tag jakubboucek/lamp-devstack-php:8.4 jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}
docker tag jakubboucek/lamp-devstack-php:8.4-debug jakubboucek/lamp-devstack-php:debug
docker tag jakubboucek/lamp-devstack-php:8.4-debug jakubboucek/lamp-devstack-php:8-debug
docker tag jakubboucek/lamp-devstack-php:8.4-debug jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-debug
fi

if [ "${NO_TEST:-0}" -ne "1" ]; then
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php --version
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-debug php --version
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc-debug php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php -r "var_export(gd_info()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4 php --version
docker run --rm jakubboucek/lamp-devstack-php:8.4-debug php --version
docker run --rm jakubboucek/lamp-devstack-php:8.4 php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4-debug php -r "echo implode(', ', get_loaded_extensions()) . PHP_EOL;"
docker run --rm jakubboucek/lamp-devstack-php:8.4 php -r "var_export(gd_info()) . PHP_EOL;"
fi

if [ "${NO_PUSH:-0}" -ne "1" ]; then
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php -r "echo PHP_RELEASE_VERSION;")
PHP_RELEASE_EXTRA=$(docker run --rm jakubboucek/lamp-devstack-php:8.4-rc php -r "echo PHP_EXTRA_VERSION;")
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-debug
docker push jakubboucek/lamp-devstack-php:8.4-rc-debug
# docker push jakubboucek/lamp-devstack-php:8-debug
# docker push jakubboucek/lamp-devstack-php:debug
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc-${PHP_RELEASE_EXTRA}
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-rc
docker push jakubboucek/lamp-devstack-php:8.4-rc
# docker push jakubboucek/lamp-devstack-php:8
# docker push jakubboucek/lamp-devstack-php:latest
PHP_RELEASE=$(docker run --rm jakubboucek/lamp-devstack-php:8.4 php -r "echo PHP_RELEASE_VERSION;")
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}-debug
docker push jakubboucek/lamp-devstack-php:8.4-debug
docker push jakubboucek/lamp-devstack-php:8-debug
docker push jakubboucek/lamp-devstack-php:debug
docker push jakubboucek/lamp-devstack-php:8.4.${PHP_RELEASE}
docker push jakubboucek/lamp-devstack-php:8.4
docker push jakubboucek/lamp-devstack-php:8
docker push jakubboucek/lamp-devstack-php:latest
fi