Zenn
🤖

Devin AI の Docker 設定でつまずいた点と解決策

2025/03/14に公開

2点ハマったので、解決策を備忘録として記録する。

429 Too Many Requests でイメージのダウンロードに失敗する

429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit

解決策: Docker アカウントを発行して Devin が使用できるようにする

デフォルトのままだと Devin が無料アカウントの状態でイメージをプルしようとするため、Docker HUB 側の Rate Limit にひっかかって失敗する。
docker login コマンドで都度認証してもいいが、自分の場合は Devin 用に Docker アカウントを発行した上で設定ファイルへ認証情報を保存しておいた。
(以下、シェル実行はすべて Devin のセットアップ画面で使用できる VSCode ターミナルより実行)

$ vi ~/.docker/config.json

{
     "Username": "anyusername",
     "Secret": "anypassword"
}

Dockerボリュームのマウントで失敗する

こちらの記事に助けられた。
https://qiita.com/ysd_marrrr/items/e8a50c43cff87951385c

次のようにdocker-composeでホスト上の任意のディレクトリにマウントさせるようなVolumeを設定すると、環境によっては コンテナ内のユーザーが持っている権限とマウントされたディレクトリの権限が一致せずコンテナが立ち上がらないことがあります。

解決策: MySQLのデータ用のボリュームは名前付きボリュームをマウントする

docker-compose.yaml(修正前)
services:
  mysql:
    image: mysql:8.0-oracle
    volumes:
      - ./docker/mysql/data/:/var/lib/mysql
docker-compose.yaml(修正後)
# 名前付きボリュームを作成
volumes:
  database:
    name: mysql-data

services:
  mysql:
    image: mysql:8.0-oracle
    volumes:
      # 名前付きボリュームをマウント
      - mysql-data:/var/lib/mysql

以下の名前付きボリュームが使用できるようになっているのが確認できる。

$ docker volume ls

DRIVER    VOLUME NAME
local     mysql-data

Discussion

ログインするとコメントできます