Skip to content

Commit 168dbaf

Browse files
authored
Adding build for ARM (Apple M1) (#50)
* Adding build for ARM * Fix * Improvements * fix buikd * Test * Test * Test * Test * Test * Test * Test * Test * Test * Test * Test * Test * Test * Test * Finished
1 parent ae08b00 commit 168dbaf

15 files changed

Lines changed: 89 additions & 113 deletions

File tree

.github/workflows/ci-cd.yml

Lines changed: 60 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,10 @@ name: CI/CD
22

33
on: [push, workflow_dispatch]
44

5-
env:
6-
DOCKER_BUILDKIT: 1
7-
85
jobs:
96
build:
10-
name: Build
117
runs-on: ubuntu-latest
8+
129
strategy:
1310
matrix:
1411
version: ['7.1', '7.2', '7.3', '7.4', '8.0', '8.1']
@@ -18,46 +15,75 @@ jobs:
1815
- name: Checkout code
1916
uses: actions/checkout@v2.4.0
2017

21-
- name: Build
22-
run: |
23-
docker build \
24-
--tag kooldev/php:${{ matrix.version }}${{ matrix.type }} \
25-
${{ matrix.version }}${{ matrix.type }}
18+
- name: Setup QEMU
19+
uses: docker/setup-qemu-action@v1
2620

27-
- name: Build (nginx)
28-
run: |
29-
docker build \
30-
--tag kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} \
31-
${{ matrix.version }}-nginx${{ matrix.type }}
32-
33-
- name: Tests
34-
run: |
35-
for suffix in '' -nginx; do
36-
docker run kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} php -v
37-
docker run kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} composer -V
38-
docker run kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} composer1 -V
39-
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} php -v
40-
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} composer -V
41-
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} composer1 -V
42-
docker run kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} php -m | grep readline
43-
docker run -e ENABLE_XDEBUG=true kooldev/php:${{ matrix.version }}$suffix${{ matrix.type }} php -m
44-
done
45-
46-
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} nginx -v
47-
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} supervisord version
21+
- name: Setup Docker Buildx
22+
uses: docker/setup-buildx-action@v1
4823

4924
- name: Login to DockerHub
50-
uses: docker/login-action@v1.12.0
25+
uses: docker/login-action@v1
5126
if: github.ref == 'refs/heads/master' && github.repository == 'kool-dev/docker-php'
5227
with:
5328
username: ${{ secrets.DOCKER_USERNAME }}
5429
password: ${{ secrets.DOCKER_PASSWORD }}
5530

56-
- name: Push to DockerHub
31+
- name: Build and export to Docker
32+
uses: docker/build-push-action@v2
33+
with:
34+
context: ${{ matrix.version }}${{ matrix.type }}
35+
load: true
36+
tags: kooldev/php:${{ matrix.version }}${{ matrix.type }}
37+
38+
- name: Tests
39+
run: |
40+
docker run kooldev/php:${{ matrix.version }}${{ matrix.type }} php -v
41+
docker run kooldev/php:${{ matrix.version }}${{ matrix.type }} composer -V
42+
docker run kooldev/php:${{ matrix.version }}${{ matrix.type }} composer1 -V
43+
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}${{ matrix.type }} php -v
44+
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}${{ matrix.type }} composer -V
45+
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}${{ matrix.type }} composer1 -V
46+
docker run kooldev/php:${{ matrix.version }}${{ matrix.type }} php -m | grep readline
47+
docker run -e ENABLE_XDEBUG=true kooldev/php:${{ matrix.version }}${{ matrix.type }} php -m
48+
49+
- name: Build and push
50+
uses: docker/build-push-action@v2
5751
if: github.ref == 'refs/heads/master' && github.repository == 'kool-dev/docker-php'
52+
with:
53+
context: ${{ matrix.version }}${{ matrix.type }}
54+
platforms: linux/amd64,linux/arm64
55+
push: true
56+
tags: kooldev/php:${{ matrix.version }}${{ matrix.type }}
57+
58+
- name: Build and export to Docker (nginx)
59+
uses: docker/build-push-action@v2
60+
with:
61+
context: ${{ matrix.version }}-nginx${{ matrix.type }}
62+
load: true
63+
tags: kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }}
64+
65+
- name: Tests (nginx)
5866
run: |
59-
docker push kooldev/php:${{ matrix.version }}${{ matrix.type }}
60-
docker push kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }}
67+
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} php -v
68+
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} composer -V
69+
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} composer1 -V
70+
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} php -v
71+
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} composer -V
72+
docker run -e ASUSER=1000 kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} composer1 -V
73+
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} php -m | grep readline
74+
docker run -e ENABLE_XDEBUG=true kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} php -m
75+
76+
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} nginx -v
77+
docker run kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }} supervisord version
78+
79+
- name: Build and push (nginx)
80+
uses: docker/build-push-action@v2
81+
if: github.ref == 'refs/heads/master' && github.repository == 'kool-dev/docker-php'
82+
with:
83+
context: ${{ matrix.version }}-nginx${{ matrix.type }}
84+
platforms: linux/amd64,linux/arm64
85+
push: true
86+
tags: kooldev/php:${{ matrix.version }}-nginx${{ matrix.type }}
6187

6288
trigger-build-wordpress:
6389
name: Trigger Wordpress Build

7.1-prod/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ RUN adduser -D -u 1337 kool \
5757
zip \
5858
sockets \
5959
mysqli \
60-
&& pecl install imagick \
61-
&& pecl install redis \
60+
&& pecl install imagick redis \
6261
&& docker-php-ext-enable imagick \
6362
&& docker-php-ext-enable redis \
6463
&& cp "/usr/local/etc/php/php.ini-production" "/usr/local/etc/php/php.ini" \

7.1/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ RUN adduser -D -u 1337 kool \
5757
zip \
5858
sockets \
5959
mysqli \
60-
&& pecl install imagick \
61-
&& pecl install redis \
60+
&& pecl install imagick redis \
6261
&& pecl install xdebug-2.9.8 \
6362
&& docker-php-ext-enable imagick \
6463
&& docker-php-ext-enable redis \

7.2-prod/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ RUN adduser -D -u 1337 kool \
5757
zip \
5858
sockets \
5959
mysqli \
60-
&& pecl install imagick \
61-
&& pecl install redis \
60+
&& pecl install imagick redis \
6261
&& docker-php-ext-enable imagick \
6362
&& docker-php-ext-enable redis \
6463
&& cp "/usr/local/etc/php/php.ini-production" "/usr/local/etc/php/php.ini" \

7.2/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ RUN adduser -D -u 1337 kool \
5757
zip \
5858
sockets \
5959
mysqli \
60-
&& pecl install imagick \
61-
&& pecl install redis \
60+
&& pecl install imagick redis \
6261
&& pecl install xdebug \
6362
&& docker-php-ext-enable imagick \
6463
&& docker-php-ext-enable redis \

7.3-prod/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ RUN adduser -D -u 1337 kool \
5757
zip \
5858
sockets \
5959
mysqli \
60-
&& pecl install imagick \
61-
&& pecl install redis \
60+
&& pecl install imagick redis \
6261
&& docker-php-ext-enable imagick \
6362
&& docker-php-ext-enable redis \
6463
&& cp "/usr/local/etc/php/php.ini-production" "/usr/local/etc/php/php.ini" \

7.3/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ RUN adduser -D -u 1337 kool \
5757
zip \
5858
sockets \
5959
mysqli \
60-
&& pecl install imagick \
61-
&& pecl install redis \
60+
&& pecl install imagick redis \
6261
&& pecl install xdebug \
6362
&& docker-php-ext-enable imagick \
6463
&& docker-php-ext-enable redis \

7.4-prod/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ RUN adduser -D -u 1337 kool \
5454
zip \
5555
sockets \
5656
mysqli \
57-
&& pecl install imagick \
58-
&& pecl install redis \
57+
&& pecl install imagick redis \
5958
&& docker-php-ext-enable imagick \
6059
&& docker-php-ext-enable redis \
6160
&& cp "/usr/local/etc/php/php.ini-production" "/usr/local/etc/php/php.ini" \

7.4/Dockerfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ RUN adduser -D -u 1337 kool \
5454
zip \
5555
sockets \
5656
mysqli \
57-
&& pecl install imagick \
58-
&& pecl install redis \
57+
&& pecl install imagick redis \
5958
&& pecl install xdebug \
6059
&& docker-php-ext-enable imagick \
6160
&& docker-php-ext-enable redis \

8.0-prod/Dockerfile

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -54,16 +54,7 @@ RUN adduser -D -u 1337 kool \
5454
zip \
5555
sockets \
5656
mysqli \
57-
# Temporarily building for PHP 8.0: https://github.com/Imagick/imagick/issues/358
58-
&& git clone https://github.com/Imagick/imagick \
59-
&& cd imagick \
60-
&& phpize \
61-
&& ./configure \
62-
&& make \
63-
&& make install \
64-
&& cd ../ \
65-
&& rm -rf imagick \
66-
&& pecl install redis \
57+
&& pecl install imagick redis \
6758
&& docker-php-ext-enable imagick \
6859
&& docker-php-ext-enable redis \
6960
&& cp "/usr/local/etc/php/php.ini-production" "/usr/local/etc/php/php.ini" \

0 commit comments

Comments
 (0)