0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Container Registry(ghcr.io)にDockerイメージPUSHして、そのDockerイメージを参照する別のDockerイメージを作成して使用するときにハマったのでメモします。

状態

ベースDockerイメージ

  • ghcr.io/username/child:latest
Dockerfile
FROM python:3.8-slim

RUN echo "foo"

ベースDockerイメージを参照するDockerイメージ

  • ghcr.io/username/parent:latest
Dockerfile
FROM ghcr.io/username/child:latest

# 色々インストール

発生した問題

productionで使用するDocker

Dockerfile
FROM ghcr.io/username/parent:latest

# 色々ビルド
RUN python -v

この状態でPythonのバージョンを調べると3.8になります。
Pythonのバージョンを更新しようとして、ghcr.io/username/child:latestDockerfileを更新しました。

Dockerfile
+ FROM python:3.9-slim

RUN echo "foo"

productionで使用するDockerを再度ビルドすると、Pythonのバージョンが3.8のままでした。

原因

ベースイメージをlatestにしていても、常に最新のイメージを取得するわけではありません。
そのDockerfileがビルドされた時点でのlatestのイメージを取得します。
そのため、ベースDockerイメージを更新したら、ベースDockerイメージを参照するDockerイメージも再度ビルドする必要があります。
当たり前のことなのですが、初めてハマりました。

まとめ

灯台下暗し

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?