継続的インテグレーションとデリバリーシステムをセルフホストすることで、開発プロセスを大幅に向上させることができます。Drone CIはオープンソースのCIシステムで、リポジトリとシームレスに連携し、ビルド管理のための直感的なユーザーインターフェースを提供します。このガイドでは、VPS上にDrone CIをセルフホストする手順をご紹介します。
なぜDrone CIのためにVPSを使うのか?
VPS(Virtual Private Server)を使用してDrone CIをホストすることで、環境を完全に管理することが可能になります。これは、CIパイプラインをカスタマイズしたい開発者や、敏感なデータの安全性を確保したい場合に非常に重要です。以下は、Drone CIのホスティングに適した主要なVPSプロバイダーの比較表です。
| プロバイダー | 価格 | リソース | 理想的な用途 |
|---|---|---|---|
| Contabo VPS | 5.99 EUR/月 | 4 GB RAM, 2 vCores | 予算重視のユーザー |
| Hetzner Cloud | 4.15 EUR/月 | 2 GB RAM, 1 vCore | 小規模プロジェクト |
| DigitalOcean | 6 USD/月 | 1 GB RAM, 1 vCore | スタートアップ |
| Vultr | 6 USD/月 | 1 GB RAM, 1 vCore | 柔軟性を求めるユーザー |
| Linode | 5 USD/月 | 1 GB RAM, 1 vCore | VPS初心者 |
事前準備
始める前に、以下を準備してください。
- VPS: 上記の中から一つ選びましょう。例としては、ContaboやHetznerなど。
- Docker: Drone CIはDockerコンテナ内で動作します。
- ドメイン名(任意): CIサーバーへの視覚的・安全なアクセスのために使用します。
- GitHubまたは同等のリポジトリアクセス: Webhooksを設定したい場合。
ステップ1:VPSの設定
-
VPSにログイン: SSHを使ってサーバーにアクセスします。
ssh root@your-server-ip -
システムをアップデート:
apt-get update && apt-get upgrade -y -
DockerとDocker Composeをインストール:
apt-get install -y docker.io docker-compose -
Dockerが正しくインストールされているか確認:
docker --version
ステップ2:Drone CIのインストール
-
Drone用のディレクトリを作成:
mkdir -p /opt/drone cd /opt/drone -
.envファイルを作成:/opt/droneディレクトリに次の内容の.envファイルを作成します。DRONE_GITEA_SERVER=https://your-gitea-server.com DRONE_RPC_SECRET=your-rpc-secret DRONE_SERVER_HOST=your-drone-domain.com DRONE_SERVER_PROTO=https -
docker-compose.ymlファイルを作成:version: '3' services: drone-server: image: drone/drone:latest ports: - 80:80 environment: - DRONE_GITEA_SERVER=https://your-gitea-server.com - DRONE_RPC_SECRET=${DRONE_RPC_SECRET} - DRONE_SERVER_HOST=${DRONE_SERVER_HOST} - DRONE_SERVER_PROTO=${DRONE_SERVER_PROTO} volumes: - drone-data:/data volumes: drone-data: -
Droneを起動:
docker-compose up -d
ステップ3:Drone CIの設定
-
Droneにアクセス: ブラウザで
http://your-drone-domain.comにアクセスします。Drone CIのログイン画面が表示されるはずです。 -
リポジトリアカウントでログイン: Gitサービスに接続します。
-
リポジトリの設定: ログイン後、自動化したいリポジトリを設定します。
-
リポジトリに
.drone.ymlファイルを作成: このファイルにはパイプラインの設定を記述します。
よくある質問(FAQ)
Drone CIのストレージ要件はどのくらいですか?
Drone CI自体はあまりストレージを必要としません。最小推奨容量は1 GBで、ログや設定ファイルに十分です。ただし、コードベースの大きさやビルドの数によっては、より大きなディスク容量が必要になる場合があります。長期間使用するとデータ量が増えるため、定期的にストレージのモニタリングと管理が重要です。Dockerのボリューム管理機能を活用してストレージを最適化しましょう。
Drone CIをGitHubやGitLabと連携できますか?
はい、Drone CIはGitHub、GitLab、Bitbucket、Giteaなどさまざまなリポジトリホスティングサービスと連携可能です。設定ページで使用したいGitサービスを選択し、リポジトリに必要な権限を付与してWebhookの作成やリポジトリアクセスを許可してください。
Drone CIのインスタンスをスケールするには?
複数のDroneサーバーインスタンスをロードバランサーの背後に配置し、スケールさせることができます。これにより、高負荷時でも安定したパフォーマンスを維持できます。docker-compose.ymlの設定を調整してスケーリングし、永続化とクラスタリングのためにPostgreSQLなどのデータベースを使用することも検討してください。詳細なスケーリング戦略については、公式ドキュメントやコミュニティリソース(例:r/selfhosted)を参照してください。