Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support cache tonistiigi/binfmt docker images #166

Open
seepine opened this issue Sep 25, 2024 · 4 comments · May be fixed by #130
Open

Support cache tonistiigi/binfmt docker images #166

seepine opened this issue Sep 25, 2024 · 4 comments · May be fixed by #130

Comments

@seepine
Copy link

seepine commented Sep 25, 2024

Description

I use gitea actions of self runner, it pull tonistiigi/binfmt:latest every times.
My network environment is not very good, sometimes pulling Docker images will time out.
So it maybe resolve my problem that if setup-qemu-action can cache pull docker image.

::endgroup::
::group::Pulling binfmt Docker image
[command]/usr/bin/docker pull tonistiigi/binfmt:latest
Error response from daemon: Head "https://registry-1.docker.io/v2/tonistiigi/binfmt/manifests/latest": dial tcp: lookup registry-1.docker.io on 127.0.0.53:53: read udp 127.0.0.1:37372->127.0.0.53:53: i/o timeout
::endgroup::
::error::The process '/usr/bin/docker' failed with exit code 1

My workflow yml

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v2

      - name: Set up Docker BuildX
        uses: docker/setup-buildx-action@v2

      - name: Login to DockerHub
        uses: docker/login-action@v2
        with:
          registry: ${{ env.DOCKER_REGISTRY }}
          username: ${{ env.DOCKER_USERNAME }}
          password: ${{ secrets.DOCKER_PASSWORD }}

      - name: Cache docker build
        uses: actions/cache@v3
        with:
          path: /opt/docker-cache/.build-cache
          key: ${{ runner.os }}-${{ steps.meta.outputs.REPO_NAME }}-docker-build-cache

      - name: Build and push
        uses: docker/build-push-action@v4
        with:
          context: .
          file: ./docker/Dockerfile
          platforms: |
            linux/amd64
            linux/arm64
          push: true
          tags: |
            ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ env.REPO_NAME }}:latest
            ${{ env.DOCKER_REGISTRY }}/${{ env.DOCKER_USERNAME }}/${{ env.REPO_NAME }}:${{ env.REPO_VERSION }}
          cache-from: type=local,src=/opt/docker-cache/.build-cache
          cache-to: type=local,dest=/opt/docker-cache/.build-cache,mode=max
@Mark24Slides
Copy link

Binfmt issue also happened to me, but due to many requests.

Pulling binfmt Docker image
/usr/local/bin/docker pull docker.io/tonistiigi/binfmt:latest
Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

Is it possible to add cache, or usage of own/diff binfmt

@lukehsiao
Copy link

Image

We are seeing the same.

@gregkonush
Copy link

did anyone find a workaround? I am getting too many requests and I don't know how to login to docker increase the limit or point it to an image in registry as well

@smoke
Copy link

smoke commented Dec 1, 2024

did anyone find a workaround? I am getting too many requests and I don't know how to login to docker increase the limit or point it to an image in registry as well

Yes, find and use pull-through cache for example AWS has such cache and I am using it like that.

    - name: Set up QEMU
      uses: docker/setup-qemu-action@v3
      with:
        # switch to AWS public ECR mirror
        image: 'public.ecr.aws/eks-distro-build-tooling/binfmt-misc:qemu-v7.0.0'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants