Skip to content

Commit

Permalink
Build containers for PHP > 8.1 (#5)
Browse files Browse the repository at this point in the history
* Build containers for PHP > 8.1

* Use PHP 8.4 GA, not rc

* Fix apt for old Debian versions

* Update action versions

---------

Co-authored-by: Nico Haase <[email protected]>
  • Loading branch information
mlocati and NicoHaase authored Dec 3, 2024
1 parent 3aeefd0 commit e0fd4ec
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 12 deletions.
39 changes: 29 additions & 10 deletions .github/workflows/create-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
echo 'Docker images will be published'
PUBLISH_IMAGES=yes
fi
echo "::set-output name=result::$PUBLISH_IMAGES"
echo "result=$PUBLISH_IMAGES" >> $GITHUB_OUTPUT
build-base-images:
name: PHP ${{ matrix.php-version }}
Expand All @@ -52,6 +52,7 @@ jobs:
# The version of libheif to be installed - see # https://github.com/strukturag/libheif/releases
LIBHEIF_VERSION: 1.12.0
strategy:
fail-fast: false
matrix:
php-version:
- "5.5"
Expand All @@ -63,15 +64,18 @@ jobs:
- "7.4"
- "8.0"
- "8.1"
- "8.2"
- "8.3"
- "8.4"
steps:
-
name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
-
name: Create initial image
run: |
PHP_VERSION_DOCKERSUFFIX=''
if [ "${{ matrix.php-version }}" = '8.1' ]; then
if [ "${{ matrix.php-version }}" = '8.5' ]; then
PHP_VERSION_DOCKERSUFFIX='-rc'
fi
docker build \
Expand All @@ -87,6 +91,12 @@ jobs:
-
name: Start container
run: docker start imagine-${{ matrix.php-version }}
-
name: Temp
run: docker exec -t imagine-${{ matrix.php-version }} ls -al /usr/local/bin/
-
name: Fix apt
run: docker exec -t imagine-${{ matrix.php-version }} imagine-fix-apt
-
name: Update apt cache
run: docker exec -t imagine-${{ matrix.php-version }} apt-get update -q
Expand All @@ -112,8 +122,8 @@ jobs:
else
HEIC_SUPPORT=no
fi
echo "::set-output name=avif-support::$AVIF_SUPPORT"
echo "::set-output name=heic-support::$HEIC_SUPPORT"
echo "avif-support=$AVIF_SUPPORT" >> $GITHUB_OUTPUT
echo "heic-support=$HEIC_SUPPORT" >> $GITHUB_OUTPUT
-
name: Install git
run: docker exec -t imagine-${{ matrix.php-version }} imagine-install git $GIT_VERSION
Expand Down Expand Up @@ -172,14 +182,14 @@ jobs:
-
name: Upload image
if: needs.inspect.outputs.publish == 'no'
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: base-image-${{ matrix.php-version }}
path: /tmp/base-image-${{ matrix.php-version }}.tgz
-
name: Login to the container registry
if: needs.inspect.outputs.publish == 'yes'
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand Down Expand Up @@ -227,17 +237,26 @@ jobs:
- php-version: "8.1"
graphicsmagic-version: "1.3.36"
imagemagick-version: "7.1.0-8"
- php-version: "8.2"
graphicsmagic-version: "1.3.36"
imagemagick-version: "7.1.0-8"
- php-version: "8.3"
graphicsmagic-version: "1.3.36"
imagemagick-version: "7.1.0-8"
- php-version: "8.4"
graphicsmagic-version: "1.3.36"
imagemagick-version: "7.1.0-8"
extensions:
- "gd-gmagick"
- "gd-imagick"
steps:
-
name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
-
name: Download base image
if: needs.inspect.outputs.publish == 'no'
uses: actions/download-artifact@v2
uses: actions/download-artifact@v4
with:
name: base-image-${{ matrix.config.php-version }}
path: /tmp/
Expand Down Expand Up @@ -301,7 +320,7 @@ jobs:
-
name: Login to the container registry
if: needs.inspect.outputs.publish == 'yes'
uses: docker/login-action@v1
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand Down
6 changes: 4 additions & 2 deletions docker/Dockerfile.base
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
ARG PHP_VERSION

# The suffix of the Docker image to be appended to PHP_VERSION
# Example: "-rc" for php:8.1-rc-cli
# Example: "-rc" for php:8.5-rc-cli
ARG PHP_VERSION_DOCKERSUFFIX=""

FROM php:${PHP_VERSION}${PHP_VERSION_DOCKERSUFFIX}-cli
Expand All @@ -11,4 +11,6 @@ COPY --from=mlocati/php-extension-installer /usr/bin/install-php-extensions /usr

COPY imagine-utilities /usr/local/bin/

COPY imagine-install /usr/local/bin/
COPY --chmod=0777 imagine-install /usr/local/bin/

COPY --chmod=0777 imagine-fix-apt /usr/local/bin/
23 changes: 23 additions & 0 deletions docker/imagine-fix-apt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/sh

if grep -q 'VERSION="8 (jessie)"' /etc/os-release; then
distro=jessie
elif grep -q 'VERSION="9 (stretch)"' /etc/os-release; then
distro=stretch
else
exit 0
fi

deb_archive=http://archive.kernel.org/debian-archive
deb_archive_security=http://archive.kernel.org/debian-archive/debian-security
sed -ri "s;^(\s*deb\s+http://(httpredir|deb).debian.org/debian\s+$distro-updates\b.*);#\1;" /etc/apt/sources.list
sed -ri "s;^(\s*deb\s+)http://(httpredir|deb).debian.org;\1$deb_archive;" /etc/apt/sources.list
sed -ri "s;^(\s*deb\s+)http://security.debian.org/debian-security;\1$deb_archive_security;" /etc/apt/sources.list
sed -ri "s;^(\s*deb\s+)http://security.debian.org;\1$deb_archive_security;" /etc/apt/sources.list

tmp="$(mktemp)"
DEBIAN_FRONTEND=noninteractive apt-get update -q 2>"$tmp"
if grep -qE ' KEYEXPIRED [0-9]' "$tmp"; then
printf 'APT::Get::AllowUnauthenticated "true";\n' >/etc/apt/apt.conf.d/99unauthenticated
fi
rm "$tmp"

0 comments on commit e0fd4ec

Please sign in to comment.