気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM等について、学んだことや備忘録をアウトプットとして残し、情報を必要としている誰かにとって「かゆいところに手が届く」ブログとなることを願いながら記事を書いています。

【AWS】[EC2]docker-compose build実行時にload metadata for docker.io/library/xxxxxが発生してi/o timeoutと表示される場合の対応方法

スポンサーリンク

概要

  • EC2マシン上で、docker-compose buildを実行するとload metadata for docker.io/library/xxxxx:y.zzというエラーが発生する

failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = DeadlineExceeded desc = failed to fetch anonymous token: Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fxxxx%3Apull&service=registry.docker.io": dial tcp xxx.xxx.xxx.xxxx:443: i/o timeout

想定環境

  • AWSにおいて、オンプレ環境を経由して、外部ネットワークに接続している

対応方法

  • 各環境変数にプロキシ認証・接続情報を設定する必要がある
    • HTTP_PROXY
    • HTTPS_PROXY
    • http_proxy
    • https_proxy
export USER_ID=your_user_id
export PASSWORD=your_password
export PROXY_SERVER_NAME=your_proxy_server_name
export PROXY_SERVER_PORT=8080

echo 'export USER_ID=${USER_ID}' >> ~/.bash_profile
echo 'export PASSWORD=${PASSWORD}' >> ~/.bash_profile
echo 'export HTTP_PROXY=http://${USER_ID}:${PASSWORD}@${PROXY_SERVER_NAME}:${PROXY_SERVER_PORT}' >> ~/.bash_profile
echo 'export HTTPS_PROXY=http://${USER_ID}:${PASSWORD}@${PROXY_SERVER_NAME}:${PROXY_SERVER_PORT}' >> ~/.bash_profile
echo 'export http_proxy=http://${USER_ID}:${PASSWORD}@${PROXY_SERVER_NAME}:${PROXY_SERVER_PORT}' >> ~/.bash_profile
echo 'export https_proxy=http://${USER_ID}:${PASSWORD}@${PROXY_SERVER_NAME}:${PROXY_SERVER_PORT}' >> ~/.bash_profile
echo 'export no_proxy=localhost,127.0.0.1',169.254.169.254 >> ~/.bash_profile
source ~/.bash_profile

docker.serviceに対してプロキシ認証設定を実施しておけば良いものと思っていたが、環境変数の設定も必要だった。