概要
既報の通りDocker HubはイメージのPullのrate limitを開始しており、Azure PipelinesでDockerイメージをビルドする際にもこの影響を受けるようになる。
※ AzureのIPアドレスからのDocker Hubへのアクセスは2022年6月30日まではrate limitが適用されていないようであるためこの課題に気づきづらいが、その日時を過ぎるとrate limitされるようになる。
GCPはDocker Hubのよくアクセスされるイメージをmirror.gcr.ioでミラーしており、そこからイメージをPullすることでrate limitを回避できるようになるので、Azure Pipelinesでその設定をする方法を紹介する。
Azure Pipelinesでmirror.gcr.ioを使うようにする設定方法
設定方法はGCPサイトのPulling cached Docker Hub imagesに書かれているとおりで、Dockerデーモンの設定ファイル/etc/docker/daemon.json
に対して"registry-mirrors": ["https://mirror.gcr.io"]
を追加し、Dockerデーモンを再起動すればよい。
Azure Pipelines エージェント(ビルドを実行するエージェント)がUbuntuの場合、Azure PipelinesでDockerタスクを実行するより前のステップで以下のコードを入れれば良い。
steps:
- script: |
cat /etc/docker/daemon.json | jq --arg mirror "https://mirror.gcr.io" '. + {"registry-mirrors": [$mirror]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
displayName: update Docker settings to use mirror.gcr.io