🤖
Devin AI の Docker 設定でつまずいた点と解決策
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ボリュームのマウントで失敗する
こちらの記事に助けられた。
次のように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