LoginSignup
1
1

More than 5 years have passed since last update.

docker-compose pull しても image が更新されない場合の対処

Posted at

タイトル通りなぜか更新されなくてなんでかと追っていったら docker-compose 1.1.0 が依存している docker-py が .dockercfg から認証情報を取ってくるときにご丁寧にホスト名にスキーマとパスを追加していたからだった。
https://github.com/docker/docker-py/commit/b1a858a14ddf7d49ab46209d420c0e281125ce6a

例えば独自レジストリに認証をかけていた場合、

docker login registry.example.com

として認証して

image: registry.example.com/my/image

などと docker-compose.yml に指定していると認証情報は https://registry.example.com/v1/ をキーに取得されるので認証エラーになってしまう。
しかも docker-compose は結果をなにも確認しないのでエラーになったかどうかすらわからない。
https://github.com/docker/compose/blob/1.1.0/compose/service.py#L521

対策としては最新の docker-compose が依存している docker-py ではホスト名だけで見てくれるので pip install --pre docker-compose などとすれば幸せになれる。

俺は stable しか使わないぞという強い信念を持っているなら

docker login https://registry.example.com/v1/

で認証するか .dockercfg をこれに書き換える

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1