OS パッケージレジストリ(Ubuntu、Debian、Alpine)
アプリケーションのビルド依存関係の多くは、OS のパッケージリポジトリからインストールされます。Dockerfile の例:
RUN apt update && apt install -y curl信頼性の高い安定したビルドを目指す場合、これは問題になります:
最新バージョンのパッケージがインストールされます。パッケージレジストリは常に更新されているため、上記のコマンドはコンテナがビルドされた時点で利用可能な
curlのバージョンをインストールします。これにより再現可能なビルドが不可能になります。ビルドキャッシュが空になるたびにパッケージが変わり(例:新しいビルドサーバーを追加したとき)、開発者がコンテナをビルドしたタイミングによって、それぞれ異なるパッケージセットを持つことになります。パッケージが削除される可能性があります。例えば、Chromium はかつて Ubuntu で apt から利用可能でしたが、snap バージョンに置き換えられる形で削除されました(コンテナ内では簡単にインストールできません)。
パッケージのピン留めは機能しません。古いバージョンのパッケージはパッケージレジストリから積極的に削除されるためです。例えば:
apt install -y curl=7.68.0-1ubuntu2.20今日は動作するかもしれませんが、curl の新バージョンがリリースされると失敗します。
StableBuild は、Ubuntu、Debian、Alpine Linux の完全なパッケージレジストリの日次コピーを作成することで、これらの問題をすべて解決します。さらに、他者が運営する最も人気のあるレジストリも含まれます。パッケージリストを特定の日付にピン留めでき、上流でパッケージが変更または削除されても、常に同じパッケージが返されます。Ubuntu の例:
ARG SB_API_KEY=your-api-key
ARG APT_PIN_DATE=2023-11-10T10:40:01Z
# StableBuildをパッケージレジストリとして使用するようOSを設定
COPY ./sb-apt.sh /opt/sb-apt.sh
RUN bash /opt/sb-apt.sh load-apt-sources ubuntu
# 通常どおりパッケージをインストール(常にcurl 7.68.0がインストールされます)
RUN apt update && apt install -y curl2023年9月6日(Ubuntu/Debian)および2023年12月17日(Alpine)までさかのぼった日次コピーがあります。レジストリはこちらで閲覧できます:http://debmirror.stablebuild.com/
以上です。パッケージリストは安定した信頼性の高いものになりました。🎉
ミラーリングしているリポジトリ
以下のリポジトリがミラーリングされています:
Ubuntu(18.04、20.04、22.04、24.04):
公式 Ubuntu パッケージリポジトリ(amd64、arm64、armhf)
Nvidia CUDA リポジトリ(amd64、arm64)
Deadsnakes PPA(最新 Python バージョン、amd64、arm64、armhf)
NodeSource PPA(最新 Node.js バージョン、amd64、arm64、armhf)
Docker CE PPA(Docker コミュニティエディション、amd64、arm64、armhf)
Chromium(公式 Debian パッケージリポジトリより、amd64、arm64)
PostgreSQL PPA(最新 PostgreSQL バージョン、amd64、arm64)
Ubuntu Toolchain test builds PPA(gcc などの新しいツールチェーン、amd64、arm64、armhf)
ROS1 PPA(Robot Operating System パッケージ、amd64、arm64、armhf)
Qualcomm IoT PPA(Qualcomm AI および IoT ソフトウェア、arm64)
Ubuntu 18.04 のパッケージは 2025年12月7日以前のミラーでのみ利用可能です。
Debian(10、11、12、13)
公式 Debian パッケージリポジトリ(amd64、arm64、armhf)
NodeSource PPA(最新 Node.js バージョン、amd64、arm64、armhf)
Docker CE PPA(Docker コミュニティエディション、amd64、arm64、armhf)
Debian 10 のパッケージは 2025年12月7日以前のミラーでのみ利用可能です。
Alpine Linux(3.16 以降)
公式 Alpine Linux パッケージリポジトリ(全アーキテクチャ)
ダッシュボードで読み込むソースを簡単に設定できます。ナビゲーションバーで OS を選択し、UI の指示に従ってください。

他の(公開されている)リポジトリのミラーリングも喜んで対応します。support@stablebuild.com までメールをお送りください。追加します。
既存のアーティファクト管理ツールについて
既存のアーティファクト管理ツールは、インストールするパッケージを調べ、対応する .deb または .apk ファイルをダウンロードしてミラーリングし、パッケージマネージャーの代わりにそれらのファイルをインストールすることで問題に対処しようとします。これは動作しますが、いくつかの点で問題があります:
パッケージリストを変更したい場合。例えば、curl 7.65 がキャッシュにあるとします。数ヶ月後に新しいパッケージを追加したいが、キャッシュにはなく、現在のバージョンは curl 7.69 に依存しています(古いバージョンはレジストリから削除済み)。このとき既存のパッケージリストも更新する必要があり、アプリケーションが壊れる可能性があります。
アーキテクチャを変更したい場合。x86 パッケージがキャッシュされているが、開発者が macOS に移行しようとしています。aarch64 パッケージがキャッシュにないため、すべての依存関係を完全に更新する必要があります。
StableBuild は完全な過去のパッケージレジストリを保持しているため、これらは問題になりません。apt install リストに新しいパッケージを追加するだけで、curl 7.65 と互換性のあるバージョンが取得されます。また、すべてのアーキテクチャをミラーリングしているため、aarch64 や armv7 でも同じコマンドを実行でき、そのアーキテクチャ用の同じパッケージリストが返されます。
アプリケーション固有の注意事項
Ubuntu への Chromium のインストール
Chromium はかつて Ubuntu システムで apt から利用可能でしたが、現在は次のエラーが表示されます:
StableBuild は Debian レジストリから apt 互換バージョンの Chromium をインストールすることでこれを解決します。「含めるパッケージリポジトリ」で「Chromium」を選択し、指示に従ってください。その後、apt で Chromium を再びインストールできます(Ubuntu 20.04 での実行例):
Chromium の正確なバージョンはピン留め日付によって異なります。
例:
2023-11-10T10:40:01Zには Chromium 116 が含まれます。2023-09-30T10:40:01Zには Chromium 114 が含まれます。
chromedriver をインストールするには(例:インテグレーションテストの実行):
ヒントとコツ
apt ソースを手動で変更する
sb-apt.sh を使用する必要はありません。sources.list ファイルを手動で更新することもできます。ソース行は通常次のようになります:
最も簡単な方法は、お好みのエディタで sb-apt.sh を開くことです。すべてのサポートされているリポジトリのソース行をどのように追加しているかを確認できます。
最終更新