Skip to content

Commit 28d47ee

Browse files
authored
Merge pull request #323 from thecodingmachine/hotfix/multiarch
Fixe multiarch arm64 support
2 parents a258b8e + 4d2d966 commit 28d47ee

25 files changed

+358
-175
lines changed

.github/workflows/workflow.yml

+6-5
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Build locally
2828
run: |
2929
PHP_VERSION="${{ matrix.php_version }}"
30-
docker buildx bake --pull --load \
30+
docker buildx bake --load \
3131
--set "*.platform=linux/amd64" \
3232
php${PHP_VERSION//.}-${{ matrix.variant }}
3333
docker images --filter=reference=thecodingmachine/php
@@ -42,9 +42,10 @@ jobs:
4242
# Merge ~ push.
4343
if: ${{ github.event_name == 'push' || github.event_name == 'schedule' }}
4444
run: |
45-
PHP_VERSION="${{ matrix.php_version }}"
46-
PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1`
47-
PHP_PATCH_MINOR="${PHP_PATCH_VERSION}" docker buildx bake --pull \
45+
PHP_VERSION="${{ matrix.php_version }}" \
46+
PHP_PATCH_VERSION=`docker run --rm thecodingmachine/php:${PHP_VERSION}-v4-slim-${{ matrix.variant }} php -v | head -n1 | grep -P '\d+\.\d+\.\d+' -o | head -n1` \
47+
PHP_PATCH_MINOR="${PHP_PATCH_VERSION}" \
48+
docker buildx bake \
4849
--set "*.platform=linux/amd64,linux/arm64" \
49-
--set=*.output=type=registry \
50+
--set "*.output=type=registry" \
5051
php${PHP_VERSION//.}-${{ matrix.variant }}

Dockerfile.apache

+5-10
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,13 @@ ARG INSTALL_COMPOSER=1
44
ARG PHP_VERSION
55
ARG GLOBAL_VERSION
66

7-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache
8-
9-
ONBUILD ARG TARGETOS
10-
ONBUILD ARG TARGETARCH
11-
ONBUILD ARG BLACKFIRE_VERSION=1
12-
ENV CONTAINER_OS=${TARGETOS}
13-
ENV CONTAINER_ARCH=${TARGETARCH}
14-
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
15-
16-
7+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-apache as baseapp
178
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
189

10+
ARG TARGETOS
11+
ARG TARGETARCH
12+
ARG BLACKFIRE_VERSION=1
13+
1914
# |--------------------------------------------------------------------------
2015
# | Main PHP extensions
2116
# |--------------------------------------------------------------------------

Dockerfile.apache.node10

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.apache.node12

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.apache.node14

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.apache.node16

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-apache
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.cli

+5-10
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,13 @@ ARG INSTALL_COMPOSER=1
44
ARG PHP_VERSION
55
ARG GLOBAL_VERSION
66

7-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli
8-
9-
ONBUILD ARG TARGETOS
10-
ONBUILD ARG TARGETARCH
11-
ONBUILD ARG BLACKFIRE_VERSION=1
12-
ENV CONTAINER_OS=${TARGETOS}
13-
ENV CONTAINER_ARCH=${TARGETARCH}
14-
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
15-
16-
7+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-cli as baseapp
178
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
189

10+
ARG TARGETOS
11+
ARG TARGETARCH
12+
ARG BLACKFIRE_VERSION=1
13+
1914
# |--------------------------------------------------------------------------
2015
# | Main PHP extensions
2116
# |--------------------------------------------------------------------------

Dockerfile.cli.node10

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.cli.node12

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.cli.node14

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.cli.node16

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-cli
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.fpm

+5-10
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,13 @@ ARG INSTALL_COMPOSER=1
44
ARG PHP_VERSION
55
ARG GLOBAL_VERSION
66

7-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm
8-
9-
ONBUILD ARG TARGETOS
10-
ONBUILD ARG TARGETARCH
11-
ONBUILD ARG BLACKFIRE_VERSION=1
12-
ENV CONTAINER_OS=${TARGETOS}
13-
ENV CONTAINER_ARCH=${TARGETARCH}
14-
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
15-
16-
7+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-slim-fpm as baseapp
178
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
189

10+
ARG TARGETOS
11+
ARG TARGETARCH
12+
ARG BLACKFIRE_VERSION=1
13+
1914
# |--------------------------------------------------------------------------
2015
# | Main PHP extensions
2116
# |--------------------------------------------------------------------------

Dockerfile.fpm.node10

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.fpm.node12

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.fpm.node14

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.fpm.node16

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
ARG PHP_VERSION
3-
ARG GLOBAL_VERSION
2+
FROM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm as baseapp
3+
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
4+
45
ARG TARGETOS
56
ARG TARGETARCH
67
ARG BLACKFIRE_VERSION=1
78

8-
FROM --platform=$BUILDPLATFORM thecodingmachine/php:${PHP_VERSION}-${GLOBAL_VERSION}-fpm
9-
10-
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
11-
129
USER root
1310

1411
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}

Dockerfile.slim.apache

+12-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
FROM --platform=$BUILDPLATFORM ubuntu:20.04
3-
2+
FROM ubuntu:20.04
43
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
54

65
# Fixes some weird terminal issues such as broken clear / CTRL+L
@@ -10,15 +9,17 @@ LABEL authors="Julien Neuhart <[email protected]>, David Négrier <
109
ENV DEBIAN_FRONTEND=noninteractive
1110

1211
ARG PHP_VERSION
13-
ENV PHP_VERSION=$PHP_VERSION
14-
ONBUILD ARG TARGETOS
15-
ONBUILD ARG TARGETARCH
16-
ONBUILD ARG BLACKFIRE_VERSION=1
17-
ARG BLACKFIRE_VERSION=1
1812
ARG TARGETOS
1913
ARG TARGETARCH
14+
ARG BLACKFIRE_VERSION=1
15+
ONBUILD ARG TARGETOS=${TARGETOS}
16+
ONBUILD ARG TARGETARCH=${TARGETARCH}
17+
ONBUILD ARG BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
2018

19+
ENV TARGETOS=${TARGETOS}
20+
ENV TARGETARCH=${TARGETARCH}
2121
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
22+
ENV PHP_VERSION=${PHP_VERSION}
2223

2324
# |--------------------------------------------------------------------------
2425
# | Main PHP extensions
@@ -363,8 +364,11 @@ ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \
363364
&& echo $SUPERCRONIC_URL \
364365
&& SUPERCRONIC=supercronic-linux-${TARGETARCH} \
365366
&& SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \
367+
&& if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \
368+
elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \
369+
else echo "Target arch '$TARGETARCH' is not supported"; fi; \
366370
&& curl -fsSLO "$SUPERCRONIC_URL" \
367-
# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
371+
&& echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
368372
&& chmod +x "$SUPERCRONIC" \
369373
&& sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \
370374
&& sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \

Dockerfile.slim.cli

+12-8
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# DO NOT EDIT THIS FILE : Make yours changes in /utils/Dockerfile.*.blueprint)
2-
FROM --platform=$BUILDPLATFORM ubuntu:20.04
3-
2+
FROM ubuntu:20.04
43
LABEL authors="Julien Neuhart <[email protected]>, David Négrier <[email protected]>"
54

65
# Fixes some weird terminal issues such as broken clear / CTRL+L
@@ -10,15 +9,17 @@ LABEL authors="Julien Neuhart <[email protected]>, David Négrier <
109
ENV DEBIAN_FRONTEND=noninteractive
1110

1211
ARG PHP_VERSION
13-
ENV PHP_VERSION=$PHP_VERSION
14-
ONBUILD ARG TARGETOS
15-
ONBUILD ARG TARGETARCH
16-
ONBUILD ARG BLACKFIRE_VERSION=1
17-
ARG BLACKFIRE_VERSION=1
1812
ARG TARGETOS
1913
ARG TARGETARCH
14+
ARG BLACKFIRE_VERSION=1
15+
ONBUILD ARG TARGETOS=${TARGETOS}
16+
ONBUILD ARG TARGETARCH=${TARGETARCH}
17+
ONBUILD ARG BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
2018

19+
ENV TARGETOS=${TARGETOS}
20+
ENV TARGETARCH=${TARGETARCH}
2121
ENV BLACKFIRE_VERSION=${BLACKFIRE_VERSION}
22+
ENV PHP_VERSION=${PHP_VERSION}
2223

2324
# |--------------------------------------------------------------------------
2425
# | Main PHP extensions
@@ -268,8 +269,11 @@ ONBUILD RUN if [ -n "$INSTALL_CRON" ]; then \
268269
&& echo $SUPERCRONIC_URL \
269270
&& SUPERCRONIC=supercronic-linux-${TARGETARCH} \
270271
&& SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85 \
272+
&& if [ "$TARGETARCH" == "arm64" ]; then SUPERCRONIC_SHA1SUM=e2714c43e7781bf1579c85aa61259245f56dbba1; \
273+
elif [ "$TARGETARCH" == "amd64" ]; then SUPERCRONIC_SHA1SUM=5ddf8ea26b56d4a7ff6faecdd8966610d5cb9d85; \
274+
else echo "Target arch '$TARGETARCH' is not supported"; fi; \
271275
&& curl -fsSLO "$SUPERCRONIC_URL" \
272-
# && echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
276+
&& echo "${SUPERCRONIC_SHA1SUM} ${SUPERCRONIC}" | sha1sum -c - \
273277
&& chmod +x "$SUPERCRONIC" \
274278
&& sudo mv "$SUPERCRONIC" "/usr/local/bin/${SUPERCRONIC}" \
275279
&& sudo ln -s "/usr/local/bin/${SUPERCRONIC}" /usr/local/bin/supercronic; \

0 commit comments

Comments
 (0)