Dockerfileを作っていく中でバージョンに関する日本語解説が見当たらなかったので、Alpine Linuxの各バージョン・ディレクトリについて公式Wikiの内容を翻訳して解説していきます。
公式Wikiはこちらなので、英語がわかる人は直接読むこと。
##バージョンについて
###v3.xとかv2.x
その名の通りバージョンです。解説するまでもありません。
大人しくこれを使うべきではないでしょうか。
###Latest stable
最新の安定版となります。よって環境を常に最新に保ちたいというのであれば、このバージョンを使うことになります。
しかし、バージョンが上がることでインストールするパッケージのバージョンも変わるため、上位互換性のない変更があったら死ぬかもしれません。
大体のシステムはphp version X.Xで動作確認済みとかするので、もしもECSとかEKSでシステムを動かす場合にこの設定だと、ビルドするたびにインストールされるパッケージが変わる恐れがあります。
使うのであればテスト環境でビルドしたもので動作確認をしっかりする体制が必要でしょう。それができているならセキュリティ的にも安定したバージョンと言えます。
###Edge
今回の主題。これは最新の開発中バージョンということを意味します。
ローリング・リリースによって小さく頻繁な更新が行われており、最新の変更が適用されている。
しかし裏を返せば最も多くのバグが潜んでいるバージョンであるため、あなたがコントリビュータとしてコミュニティに貢献したい訳でもないなら使うべきではないでしょう。
本番環境で使う場合は注意してくださいとあるが、原則として本番環境で使うべきではない。
alpine linuxを用いたdockerfileがネットにはいくつも転がっているが、いくつかedgeを使っているので注意してください。
##ディレクトリについて
Edge,latest-release,v3.xなどのバージョンの下にはいくつかのディレクトリがあります。
ディレクトリにはいくつかのパッケージが含まれており、大別すると基本パッケージと追加パッケージに分かれます。
目的に応じてリポジトリに追加してください。
###main
メインのディレクトリです。基本的なパッケージが含まれます。
###community
様々な理由により追加されたパッケージが含まれるディレクトリです。6ヶ月以上はサポートされません。
###testing
全ての追加パッケージはまずtestingに入ります。追加されたパッケージは肯定的なフィードバックか、その他の良い理由により評価されるとmainへ移動します。
このディレクトリは安定バージョンには含まれず、開発バージョンであるedgeにのみ含まれます。
###non-free
これに含まれるパッケージはフリーソフトウェアではありません。フリーソフトウェア財団のフリーソフトウェア規約に反している、改変および他者への再配布を禁止しているパッケージが含まれています。
###unmaintained
パッケージがもうメンテナンスされなくなったりビルドされなくなったりすると、このディレクトリに移動されます。
これは誰かがパッケージを修正しようと考えている場合に備え、元のAPKBUILD(パッケージビルド用のスクリプト)を利用可能なままにビルドサーバーを壊さないようにするためです。