name: build-docker-images-for-latest-release on: push: branches: - main jobs: build-and-push: runs-on: ubuntu-latest steps: # Checkout the repository - name: Checkout repository uses: http://fly6516.synology.me:4000/Gitea_Action/checkout@v2 # Pre-pull image if needed - name: Pre Pull Image if Needed run: | IMAGE_NAME="dockerp.com/moby/buildkit:buildx-stable-1" if ! docker image inspect "$IMAGE_NAME" > /dev/null 2>&1; then echo "Image does not exist locally. Pulling..." docker pull "$IMAGE_NAME" else echo "Image already exists locally." fi # Set up Docker Buildx - name: Set up Docker Buildx run: | docker buildx create --use --name mybuilder docker buildx inspect --bootstrap # Log in to Gitea Docker Registry - name: Log in to Gitea Docker Registry run: | echo ${{ secrets.DOCKER_SYN_PWD }} | docker login https://fly6516.synology.me:8080 -u ${{ secrets.DOCKER_SYN_USER }} --password-stdin # Set Docker Timeout - name: Set Docker Timeout run: | echo "DOCKER_CLIENT_TIMEOUT=300" >> $GITHUB_ENV echo "DOCKER_BUILD_TIMEOUT=300" >> $GITHUB_ENV # Build the Docker image for all architectures - name: Build Multi-Arch Docker Image run: | docker buildx build \ --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6,linux/ppc64le,linux/s390x,linux/386 \ -t fly6516.synology.me:8080/multilang:latest \ . --push # Optional: Verify the pushed image - name: Verify Docker Image run: | docker pull fly6516.synology.me:8080/multilang:latest docker run --rm fly6516.synology.me:8080/multilang:latest bash -c "echo 'Image verified'"