Skip to content

Commit 556f034

Browse files
committed
fix: rpi-compatible Docker images
1 parent 12be38e commit 556f034

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

.github/workflows/build_docker_image.yml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,29 @@ jobs:
3434
password: ${{ secrets.GITHUB_TOKEN }}
3535

3636
- name: Prepare available platforms build
37-
env:
37+
env: # Here you need to test on what platform your docker image can be build. Important one is linux/arm/v7, linux/arm64 and linux/amd64
3838
requested_platforms: 'linux/amd64,linux/arm64,linux/arm/v7'
39+
image: 'ghcr.io/${{ github.repository }}:latest'
3940
run: |
40-
IFS=',' read -r -a requested_platforms <<< "${requested_platforms}"
41-
IFS=',' read -r -a available_platforms <<< "${{ steps.buildx.outputs.platforms }}"
42-
available_platforms=$(comm -12 <(printf '%s\n' "${requested_platforms[@]}" | LC_ALL=C sort) <(printf '%s\n' "${available_platforms[@]}" | LC_ALL=C sort))
43-
requested_platforms="${requested_platforms//'\n'/,}"
44-
available_platforms="${available_platforms//'\n'/,}"
45-
echo "available_platforms=$available_platforms"
46-
echo "requested_platforms=${requested_platforms}" >> $GITHUB_ENV
41+
# If you use the `requested_platforms` env var, then parse it.
42+
if [ -n "${requested_platforms}" ]; then
43+
# Transform env var into bash array to calculate arrays intersect. That allow us to know the plateform that can work with our image who can be build on current github docker buildx.
44+
IFS=',' read -r -a requested_platforms <<< "${requested_platforms}"
45+
IFS=',' read -r -a available_platforms <<< "${{ steps.buildx.outputs.platforms }}"
46+
# Only got the intersect of two arrays
47+
available_platforms=$(comm -12 <(printf '%s\n' "${requested_platforms[@]}" | LC_ALL=C sort) <(printf '%s\n' "${available_platforms[@]}" | LC_ALL=C sort))
48+
# Just format the output for the docker commands
49+
requested_platforms="${requested_platforms//' '/}"
50+
available_platforms="${available_platforms//' '/}"
51+
else
52+
available_platforms="${{ steps.buildx.outputs.platforms }}"
53+
fi
54+
55+
echo "available_platforms=$available_platforms"
56+
57+
# Save Available platforms
58+
echo "available_platforms=${available_platforms}" >> $GITHUB_ENV
59+
echo "docker_image=${image,,}" >> $GITHUB_ENV
4760
4861
# Use cache image for quicker build time.
4962
- name: Cache Docker layers

0 commit comments

Comments
 (0)