Docker Executor から Machine Executor への移行
このドキュメントでは、Docker Executor から Machine Executor (またはその逆) に移行する際に考慮すべき事項と一般的なガイドラインについて説明します。
はじめに
お客様のビルドによっては、Docker Executor が適さない場合があります。 メモリ不足や専用の CPU が必要な場合などがその例です。 専用の仮想マシンに移行することで、これらの問題の一部は解消できますが、Executor の変更は設定ファイルを数行変えるような簡単な作業ではありません。 アプリケーションやテスト用にインストールしなければならないツールやライブラリなど、他にも考慮すべき事項がいくつかあります。
プリインストールされているソフトウェア
プリインストールされているソフトウェアの最新のリストは Image Builder のページを参照してください。 詳細は、Discuss のページでもご確認いただけます。
sudo apt-get install<package>
を使って追加パッケージをインストールできます。 パッケージが見つからない場合は、インストールの前に sudo apt-get update
が必要な場合があります。
マシンで Docker コンテナを実行する
Machine Executor には Docker がインストールされています。 Docker は、追加の依存関係をインストールするためではなく、コンテナ内でアプリケーションを実行するために使用されます。 この場合、CircleCI イメージではなくお客様の Docker イメージを使用することをお勧めします。 CircleCI イメージは、 Docker Executor での使用を前提としてビルドされているため、それ以外の用途には合わない可能性があります。 各 Machine Executor の環境は専用の仮想マシンなため、通常バックグラウンドコンテナを実行するためのコマンドが使用できます。
注: アカウントで Docker レイヤーキャッシュ (DLC) を有効にしている場合、Machine Executor は DLC を使ってその後の実行に備えてイメージレイヤーをキャッシュします。
Docker Executor を使う理由
Machine Executor の使用により、メモリが倍増し、より隔離された環境が提供されますが、スピンアップ時間にオーバーヘッドが追加されます。また、アプリケーションの実行方法によっては、必要な依存関係のインストールや Docker イメージのプルに時間がかかる場合があります。 また Docker Executor は、DLC を有効にする必要がある Machine Executor とは異なり、スピンアップ中にイメージからできるだけ多くのレイヤーをキャッシュします。
それぞれの Executor に長所と短所があるため、ここでの説明を読み、お客様のパイプラインに最適な Executor を選択してください。
関連情報
各 Executor に関する詳細は、こちらを参照してください。ここでは、特定のメモリと vCPU の割り当てに関する詳細や、各 Executor をお客様の設定で実装する方法も説明しています。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか?
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、サポートサイトから、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。

CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.