Closed5
latestで取得したpostgresイメージのバージョンを確認する
postgres:latest
で取得してしまったためにバージョンが特定できない
調査する方法はあるか
①docker inspectでそれっぽい情報を探す
docker inspect
コマンドでコンテナイメージの詳細情報を取得出来ます。
だいたい環境変数にバージョンの記載がされていそうなので、調べてみます。
$ docker image inspect --format '{{ json .Config.Env }}' postgres:latest | jq
[
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/postgresql/15/bin",
"GOSU_VERSION=1.16",
"LANG=en_US.utf8",
"PG_MAJOR=15",
"PG_VERSION=15.3-1.pgdg120+1",
"PGDATA=/var/lib/postgresql/data"
]
15.3-1
と記載があります。確定ではないですがそれっぽいです
②コンテナの中に入って調査する
これが確実でしょう。コンテナ立ててはいって確認すればよいです。
$ docker run --name some-postgres -e POSTGRES_PASSWORD=secretpassword -d postgres:latest
$ docker exec -it some-postgres psql -U postgres -c 'SELECT version();'
version
---------------------------------------------------------------------------------------------------------------------
PostgreSQL 15.3 (Debian 15.3-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
(1 row)
③DIGESTから検索する
inspectコマンドでイメージのDIGESTを取得できます。
$ docker inspect --format='{{index .RepoDigests 0}}' postgres:latest
postgres@sha256:362a63cb1e864195ea2bc29b5066bdb222bc9a4461bfaff2418f63a06e56bce0
このDIGESTと一致しているイメージをdockerhubから探し、ベースイメージなりパッケージを調査すればOKです。
大変だし、latestのイメージはちょくちょく更新されるので実用的ではないですね
このスクラップは2023/07/14にクローズされました