@@ -15,25 +15,68 @@ jobs:
15
15
make-docker-images :
16
16
strategy :
17
17
matrix :
18
+ runner-platform : ['ubuntu-24.04', 'ubuntu-24.04-arm']
18
19
postgres : [13, 14, 15, 16, 17]
19
20
postgis : ['3.5']
20
21
variant : [default, alpine]
21
22
include :
22
23
- postgres : 16
23
24
postgis : master
24
25
variant : default
26
+ runner-platform : ' ubuntu-24.04'
25
27
- postgres : 17
26
28
postgis : master
27
29
variant : default
30
+ runner-platform : ' ubuntu-24.04'
31
+ - postgres : 16
32
+ postgis : master
33
+ variant : default
34
+ runner-platform : ' ubuntu-24.04-arm'
35
+ - postgres : 17
36
+ postgis : master
37
+ variant : default
38
+ runner-platform : ' ubuntu-24.04-arm'
28
39
29
- name : Build docker image for ${{ matrix.postgres }}-${{ matrix.postgis }} variant ${{ matrix.variant }}
30
- runs-on : ubuntu-24.04
40
+ name : Build docker image for ${{ matrix.postgres }}-${{ matrix.postgis }} variant ${{ matrix.variant }} on ${{ matrix.runner-platform }}
41
+ runs-on : ${{ matrix.runner-platform }}
31
42
continue-on-error : ${{ matrix.postgis == 'master' }}
32
43
env :
33
44
VERSION : ${{ matrix.postgres }}-${{ matrix.postgis }}
34
45
VARIANT : ${{ matrix.variant }}
46
+ DOCKER_APT_PKG_VER : ' 5:28.0.0-1~ubuntu.24.04~noble'
35
47
36
48
steps :
49
+ - name : Install/config specific version of Docker packages
50
+ run : |
51
+ echo "***** Removing any currently installed conflicting packages..."
52
+ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
53
+ echo "***** Setting up Docker's APT repo..."
54
+ sudo apt-get update
55
+ sudo apt-get install ca-certificates curl
56
+ sudo install -m 0755 -d /etc/apt/keyrings
57
+ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
58
+ sudo chmod a+r /etc/apt/keyrings/docker.asc
59
+ echo \
60
+ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
61
+ $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
62
+ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
63
+ sudo apt-get update
64
+ echo "***** Installing Docker packages..."
65
+ sudo apt-get install docker-ce=${{ env.DOCKER_APT_PKG_VER }} docker-ce-cli=${{ env.DOCKER_APT_PKG_VER }} containerd.io docker-buildx-plugin docker-compose-plugin
66
+ echo "***** Verifying initial Docker installation..."
67
+ docker run hello-world
68
+ echo "***** Displaying Docker information..."
69
+ docker info
70
+ echo "***** Configuring Docker for containerd image store..."
71
+ echo "{ \"features\": { \"containerd-snapshotter\": true }}" | sudo tee /etc/docker/daemon.json
72
+ sudo systemctl restart docker
73
+ docker info -f '{{ .DriverStatus }}'
74
+
75
+ - name : Load binfmt platforms for QEMU
76
+ run : |
77
+ docker run --privileged --rm tonistiigi/binfmt --install all
78
+ docker images --tree
79
+
37
80
- name : Checkout source
38
81
uses : actions/checkout@v4
39
82
48
91
password : ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
49
92
50
93
- name : Push docker image to dockerhub
51
- if : ${{ (github.ref == 'refs/heads/master') && (github.event_name != 'pull_request') }}
94
+ # !!!! ONLY push the images when built on ubuntu-24.04 x86 runner for now, NOT for ubuntu-24.04-arm runners
95
+ if : ${{ (github.ref == 'refs/heads/master') && (github.event_name != 'pull_request') && ( matrix.runner-platform == 'ubuntu-24.04' ) }}
52
96
env :
53
97
DOCKERHUB_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
54
98
DOCKERHUB_ACCESS_TOKEN : ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
0 commit comments