|
日々の業務で、テスト用にコンテナイメージをビルドすることが多く、必ずしもビルド環境で使用しないという状況に陥ったことはありませんか?そのような場合、まずはイメージをイメージリポジトリにプッシュし、その後、別の場所でコンテナをプルして実行する必要があります。しかし、時間が経つにつれて、イメージリポジトリのクリーンアップを忘れてしまい、不要なイメージが蓄積されていきます。 もちろん、自動クリーンアップ機能を備えたHarborのようなミラーリポジトリを使用することもできます。しかし、一時的なイメージ転送ポイントとしてのみ使用する場合は、Harborは扱いにくいです。 今回紹介する ttl.sh スクリプトは、このようなシナリオを処理するのに最適です。 ttl.shttl.sh は、ログイン不要で無料で利用できる匿名の一時イメージリポジトリで、オープンソースです。ログインは不要で、イメージ名自体が機密性を確保します。例えば、UUID をイメージ名として使用し、同じ UUID でイメージのプッシュとプルを行うことができます。 使用ttl.sh の使用は非常に簡単で、タグに注意する必要があることを除けば、Docker Hub や Docker Registry の使用と変わりません。
例えば: # macOS はデフォルトで大文字の UUID を生成するため、これを小文字に変換する必要があります。Linux では、uuidgen を直接使用できます。 成し遂げるttl.sh のソースコードは GitHub でオープンソース化されており、実装も複雑ではありません。 ttl.sh は、 Registry v2 をベースにしたイメージリポジトリです。Registry の通知機能を使用して、イメージプッシュイベントをHooks Web サービスに送信します。 フックは、Redis のイベント内のイメージ情報を解析して記録し、主にイメージの有効期限を記録します。同時に、 Reaper のスケジュールされたタスクは、定期的に Redis からイメージ情報を取得し、期限切れのイメージは、レジストリの REST API を呼び出すことによってクリーンアップされます。 |