概要
CodeBuild でイメージをbuildしていると下記のエラーメッセージをよく目にすることがあるかと思います。
error pulling image configuration: toomanyrequests: Too Many Requests. Please see https://docs.docker.com/docker-hub/download-rate-limit/
対策として、Docker Hub にログインしたり、CodeBuild を VPC 上で起動して接続元のIPを変えると行った方法がとられてきましたが、イメージを Amazon ECR Public Gallery からダウンロードするようにすることで以前よりも簡単に回避ができるようになりました。
Docker Hub と比べると登録されているイメージが少ないので、使いたいイメージがない場合もあるかと思いますが、今後、拡充されてくるのではないかと思いますので、今後に期待です。
ubuntu系のイメージが比較的登録さているようでした。
使用方法
使用したいイメージを ECR Piblic Gallery から探します。
ECR Public Gallery
Amazon ECR Public Gallery is a website that allows anyone to browse and search for public container images, view developer-provided details, and see pull comman...
このサイトへはマネジメントコンソールの認証無しに誰でもアクセスが可能です。
docker pull
pull するイメージの URL を ECR Piblic Gallery のものに変更するだけで使用可能です。
❯ docker run -itd --rm --name nginx -p 80:80 public.ecr.aws/nginx/nginx:latest
Unable to find image 'public.ecr.aws/nginx/nginx:latest' locally
latest: Pulling from nginx/nginx
69692152171a: Pull complete
30afc0b18f67: Pull complete
596b1d696923: Pull complete
febe5bd23e98: Pull complete
8283eee92e2f: Pull complete
351ad75a6cfa: Pull complete
Digest: sha256:d0389f5575bd793d7b3b0754f43e47488644934963276387b58098ab1b9fa5ec
Status: Downloaded newer image for public.ecr.aws/nginx/nginx:latest
893dd73a64d5c995bd15fcc27e93e19fbc57b0f54d74fa84d676707da3d1724b
❯
❯ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
893dd73a64d5 public.ecr.aws/nginx/nginx:latest "/docker-entrypoint.…" About a minute ago Up About a minute 0.0.0.0:80->80/tcp, :::80->80/tcp nginx
❯
❯ curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.21.0
Date: Fri, 11 Jun 2021 04:09:18 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 25 May 2021 12:28:56 GMT
Connection: keep-alive
ETag: "60aced88-264"
Accept-Ranges: bytes
❯
Dockerfile
Dockerfile で使用する場合も FROM に記述するイメージ名を ECR Piblic Gallery のものに変更するだけで使用可能です。
# FROM nginx:latest
FROM public.ecr.aws/lts/ubuntu:latest
RUN apt-get update && apt-get install -y -q nginx
COPY index.html /usr/share/nginx/html/
CMD ["nginx","-g","deamon off;"]
コメント