2026年リモート Mac CIでは repodataチャンネル解決が律速し、environment.yml 単体では解が揺れますミラー端点並列再試行lock 受入を一枚にします。越境では帯域が律速になりやすく、表で固定すると運用が楽です。ホーム技術ブログ一覧Helm OCI 越境表参照。

越境 CI で先に潰す三点

ミラー順のズレ429lock 不在が典型です。runner 間で設定が食い違うと同じ yml でも解が変わるため .condarc を IaC 配布します。

チェック順
  • channel_aliasdefault_channels を IaC で統一。
  • MAMBA_DOWNLOAD_THREADS を絞り 4→12→30→90 秒で再試行。
  • conda-lock または explicit で environment.yml と突合。

決定マトリクス:conda/mamba/micromamba

実装用途越境メモ
conda既存手順踏襲solver と CONDA_PKGS_DIRS を明示
mamba大規模 solve高速・CONDA_SOLVER=libmamba
micromamba軽量 runnerMAMBA_ROOT_PREFIX 隔離

本番と CI は同一 .condarc、差分は lock で吸収。

チャンネルとミラー端点の設計

channels上から優先channel_alias全ジョブ同一conda info で突合。プロキシは HTTPS_PROXY と CA。

export CONDA_PKGS_DIRS="${CONDA_PKGS_DIRS:-$HOME/ci-cache/conda/pkgs}"
export MAMBA_ROOT_PREFIX="${MAMBA_ROOT_PREFIX:-$HOME/ci-mamba-root}"
# .condarc 例: channel_alias / channels / default_channels をプレースホルダから置換

並列インストールとワーカー数

変数越境目安メモ
MAMBA_DOWNLOAD_THREADS2〜4429 なら減らす
CONDA_SOLVERlibmambaclassic 差は lock で吸収
CONDA_PKGS_DIRSrunner 専用共有はファイルロック競合

帯域が細いほどスレッドを絞るほうが総時間が短い場合があります。

失敗時の再試行

CONDA_HTTP_MAX_RETRIES を上げ、429 ではスレッドを一段下げて再実行。

export CONDA_HTTP_MAX_RETRIES="${CONDA_HTTP_MAX_RETRIES:-8}"
for i in 1 2 3 4; do
  micromamba create -y -n ci-env -f environment.yml && break
  case "$i" in 1) sleep 4;; 2) sleep 12;; 3) sleep 30;; *) sleep 90;; esac
done

lockfile/エクスポートと environment.yml の一致

成果物受入
environment.ymlチャンネル行がレビュー済み
conda-lockCI は lock のみから install
explicit export宣言との差分を PR で確認

基準:lock 差分は PR 必須osx-arm64 を matrix に。export--from-history 優先。

実装手順(五ステップ)

① .condarc でミラー固定 ② CONDA_PKGS_DIRSMAMBA_ROOT_PREFIX 専用パス ③ conda-lock lock -f environment.yml ④ CI は lock のみから create+バックオフ ⑤ conda env export --from-history で確認。

FAQ

Q. yml だけで再現できない
A. conda-lock か explicit を併用し PR で差分を見る。

Q. 解が食い違う
A. CONDA_SOLVER と .condarc を揃え、最終的に lockfile で一本化。

Q. repodata がタイムアウト
A. ミラーを近接に寄せ、MAMBA_DOWNLOAD_THREADS を下げ、バックオフ後に再試行。

まとめと次の一手(購入・資料)

要点は端点固定並列と再試行lock 受入2026は越境帯域が律速になりやすい。

検証は専用リモート Macで。ホーム料金購入ヘルプログイン不要ブログ一覧Nix 決定表

Conda/リモート Mac CI

ミラーと lock を踏み固めた Mac ノードで検証する

料金・購入・ヘルプはログイン不要。プラン比較とブログ一覧からどうぞ。