0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Drone CI: Docker Hub にログインしてイメージを Pull する

Posted at

2020年11月から Docker Hub でログインなしの匿名ユーザからの Pull 回数には IP あたり上限(6 時間あたり 100 回まで)が設けられたため、以下のようなエラーになってしまう場合がある。

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

これを回避するため、ユーザー認証して Pull する。

参考)

手順

Docker Hub へのアクセストークンを発行する

  1. Docker Hub にログインする。

  2. Account Settings > Security > Access Tokens から「New Access Token」でアクセストークンを生成する。

  3. ユーザー名とアクセストークンを結合して Base64 化する。

    DOCKERHUB_USERNAME=(ユーザー名)
    DOCKERHUB_ACCESS_TOKEN=(アクセストークン)
    DOCKERHUB_AUTH=$(echo -n "${DOCKERHUB_USERNAME}:${DOCKERHUB_ACCESS_TOKEN}" | base64)
    

.drone.yml に設定

参考) Pulling Private Images

.drone.yml に image_pull_secrets を記述することで、docker pull 時の認証情報を指定する。(dockerconfig は Secret 名)

image_pull_secrets:
  - dockerconfig

Secrets に認証情報を設定

以下の内容で Secrets に登録する。

  • SecretName: dockerconfig

  • SecretValue

    {
      "auths": {
        "https://index.docker.io/v1/": {
          "auth": "(発行したアクセストークン)"
        }
      }
    }
    

Secrets に認証情報を設定 (Encrypted Secrets の場合)

参考) Secrets - Encrypted

OSS 版の場合は Encrypted しか対応していないため、.drone.yml に暗号化して記述する。

  1. Drone で暗号化する。

    export DRONE_SERVER=https://drone.example.jp
    export DRONE_TOKEN=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    REPOSITORY_NAME=(設定先リポジトリ名)
    drone encrypt "${REPOSITORY_NAME}" "{\"auths\":{\"https://index.docker.io/v1/\":{\"auth\":\"${DOCKERHUB_AUTH}\"}}}"
    
  2. 暗号化したデータを .drone.yml の Secrets に追記する。

    kind: secret
    name: dockerconfig
    data: (暗号化した認証情報)
    
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?