From 0911d55b28f8f3fb0aa350a8f3e64739a8e11a87 Mon Sep 17 00:00:00 2001 From: Maxim Zalysin Date: Tue, 20 Jun 2023 20:14:54 +0300 Subject: [PATCH] Update Docker platforms supports --- .github/workflows/build-push.yml | 94 ++++++++++++++++---------------- Dockerfile.alpine | 2 +- README.md | 4 +- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/.github/workflows/build-push.yml b/.github/workflows/build-push.yml index 48ab4ae..e0a75d9 100644 --- a/.github/workflows/build-push.yml +++ b/.github/workflows/build-push.yml @@ -7,8 +7,8 @@ env: on: push: branches: - - master - - v[0-9]+.[0-9]+ + - master + - v[0-9]+.[0-9]+ defaults: run: @@ -22,48 +22,48 @@ jobs: matrix: os: [alpine, debian, ubuntu] steps: - - name: Checkout - uses: actions/checkout@v2 - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Login to Docker Hub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Set environment DOCKERHUB_IMAGE_TAGS on master - if: github.ref == 'refs/heads/master' && matrix.os == 'alpine' - run: echo "DOCKERHUB_IMAGE_TAGS=$DOCKERHUB_REPOSITORY:latest" >> $GITHUB_ENV - - name: Set environment DOCKERHUB_IMAGE_TAGS - if: github.ref != 'refs/heads/master' - run: | - _BRANCH=${GITHUB_REF##*/} - _VERSION=${_BRANCH#v*} - _MAJOR_VERSION=${_VERSION%.*} - _DOCKERHUB_IMAGE_TAGS="$DOCKERHUB_REPOSITORY:$_VERSION-${{ matrix.os }}" - _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_MAJOR_VERSION-${{ matrix.os }}" - _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:${{ matrix.os }}" - if [ "${{ matrix.os }}" == "alpine" ]; then - _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_VERSION" - _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_MAJOR_VERSION" - fi - echo "DOCKERHUB_IMAGE_TAGS=$_DOCKERHUB_IMAGE_TAGS" >> $GITHUB_ENV - - name: Set environment DOCKERHUB_IMAGE_PLATFORMS - run: | - _DOCKERHUB_IMAGE_PLATFORMS="linux/amd64" - if [ "${{ matrix.os }}" == "debian" ]; then - _DOCKERHUB_IMAGE_PLATFORMS+=",linux/arm64" - elif [ "${{ matrix.os }}" == "ubuntu" ]; then - _DOCKERHUB_IMAGE_PLATFORMS+=",linux/arm/v7,linux/arm64" - fi - echo "DOCKERHUB_IMAGE_PLATFORMS=$_DOCKERHUB_IMAGE_PLATFORMS" >> $GITHUB_ENV - - name: Build and push - if: env.DOCKERHUB_IMAGE_TAGS != '' - uses: docker/build-push-action@v2 - with: - file: Dockerfile.${{ matrix.os }} - tags: ${{ env.DOCKERHUB_IMAGE_TAGS }} - platforms: ${{ env.DOCKERHUB_IMAGE_PLATFORMS }} - push: true + - name: Checkout + uses: actions/checkout@v3 + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Set environment DOCKERHUB_IMAGE_TAGS on master + if: github.ref == 'refs/heads/master' && matrix.os == 'alpine' + run: echo "DOCKERHUB_IMAGE_TAGS=$DOCKERHUB_REPOSITORY:latest" >> $GITHUB_ENV + - name: Set environment DOCKERHUB_IMAGE_TAGS + if: github.ref != 'refs/heads/master' + run: | + _BRANCH=${GITHUB_REF##*/} + _VERSION=${_BRANCH#v*} + _MAJOR_VERSION=${_VERSION%.*} + _DOCKERHUB_IMAGE_TAGS="$DOCKERHUB_REPOSITORY:$_VERSION-${{ matrix.os }}" + _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_MAJOR_VERSION-${{ matrix.os }}" + _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:${{ matrix.os }}" + if [ "${{ matrix.os }}" == "alpine" ]; then + _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_VERSION" + _DOCKERHUB_IMAGE_TAGS+=",$DOCKERHUB_REPOSITORY:$_MAJOR_VERSION" + fi + echo "DOCKERHUB_IMAGE_TAGS=$_DOCKERHUB_IMAGE_TAGS" >> $GITHUB_ENV + - name: Set environment DOCKERHUB_IMAGE_PLATFORMS + run: | + _DOCKERHUB_IMAGE_PLATFORMS="linux/amd64" + if [ "${{ matrix.os }}" == "debian" ]; then + _DOCKERHUB_IMAGE_PLATFORMS+=",linux/arm64" + elif [ "${{ matrix.os }}" == "ubuntu" ]; then + _DOCKERHUB_IMAGE_PLATFORMS+=",linux/arm/v7,linux/arm64" + fi + echo "DOCKERHUB_IMAGE_PLATFORMS=$_DOCKERHUB_IMAGE_PLATFORMS" >> $GITHUB_ENV + - name: Build and push + if: env.DOCKERHUB_IMAGE_TAGS != '' + uses: docker/build-push-action@v4 + with: + file: Dockerfile.${{ matrix.os }} + tags: ${{ env.DOCKERHUB_IMAGE_TAGS }} + platforms: ${{ env.DOCKERHUB_IMAGE_PLATFORMS }} + push: true diff --git a/Dockerfile.alpine b/Dockerfile.alpine index 742f9ad..1534c3f 100644 --- a/Dockerfile.alpine +++ b/Dockerfile.alpine @@ -1,4 +1,4 @@ -FROM alpine:3.17 +FROM alpine:3.18 ENV TRACCAR_VERSION 5.8 diff --git a/README.md b/README.md index 1964a1f..b0c9ebb 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ Maintainer: [Maxim Zalysin](https://github.com/magna-z) ## Available multi-platform images: **Alpine based**: linux/amd64 -**Debian based**: linux/amd64, linux/arm64/v8 -**Ubuntu based**: linux/amd64, linux/arm/v7, linux/arm64/v8 +**Debian based**: linux/amd64, linux/arm64 +**Ubuntu based**: linux/amd64, linux/arm/v7, linux/arm64 ## Container create example: 1. **Create work directories:**