私は、特定の安定したAlpineリリース内で個々のパッケージバージョンを保存/アップグレードするためにAlpine Linuxで文書化された方法を探しています。
したがって、イメージ(dockerなど)を構築すると仮定すると、次のようになります。
FROM alpine:3.13.1
RUN apk add python3 py3-numpy
それから...
- これは常にpython3とnumpyの同じ州/マイナーバージョンをインストールすると仮定するのは安全ですか?
- セキュリティパッチは提供されますか?(画像を再構成する場合)
3.13
(#1と#2)の代わりにちょうど修正だと言ったら3.13.1
違いは何ですか?
ベストアンサー1
私はこれを説明する明確な文書を知らないという事実以外安定したリリースではバグのみを修正します。:
安定リリースは、名前が示すように、最初はパッケージアーカイブの特定の時点のスナップショットですが、その後は安定した環境を維持するためにバグ修正としてのみ維持されます。
ただし、一部の実験では、インストールがベースのパッチバージョンに固定されていないことがわかりました。
$ docker run -it --rm alpine:3.13.0
/ # apk add php8
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.13/community/x86_64/APKINDEX.tar.gz
(1/9) Installing php8-common (8.0.2-r0)
(2/9) Installing argon2-libs (20190702-r1)
(3/9) Installing ncurses-terminfo-base (6.2_p20210109-r0)
(4/9) Installing ncurses-libs (6.2_p20210109-r0)
(5/9) Installing libedit (20191231.3.1-r1)
(6/9) Installing pcre2 (10.36-r0)
(7/9) Installing xz-libs (5.2.5-r0)
(8/9) Installing libxml2 (2.9.10-r6)
(9/9) Installing php8 (8.0.2-r0)
Executing busybox-1.32.1-r0.trigger
OK: 13 MiB in 23 packages
/ #
- インデックスは「v3.13」であり、インストール後にphp8
次のようにリストされている8.0.2を取得します。3.13.2。
さらなる実験では、以下の結果が示された。
- デフォルトイメージとして使用すると、
alpine:3.13
最新のパッチバージョンが作成されます。 - デフォルトイメージとして使用すると、イメージ
alpine:3.13.x
の一部であるパッケージ(musl
などzlib
)に特定apk-toole
のパッチバージョンがリリースされますが、何でもインストールすると、通常のリリースで利用可能な最新バージョンがインストールされます。 apk upgrade --available
それにもかかわらず、コアパッケージに対する修正が見つかったことを確認する必要があります。
したがって、イメージを再構築すると、常に同じパッケージとバージョンのセットが生成されることを保証する方法はないようです。
一貫したパッケージとバージョンのセットを維持するには、独自のイメージを構築してタグを付けることができます(ただし、セキュリティ変更は省略)。