連続統合を学ぶ:自己ホスティングドローンCI
8909 ワード
最初のもの最初:なぜ連続積分(CI)はとにかく?
外は競争が多い.あなたが見ているすべての企業は、共通の1つのものを持っている-顧客を幸せに.あなたは品質と高速新機能を提供すると、ゲームに勝つ.全世界は、毎日配達される良質なソフトウェアに向けられます.
あなたはその野菜配達会社を見ます、それは実はソフトウェア会社です.はい、あなたは行くことができるとどのように自分のウェブサイト上で自分の注文を取得する方法を参照してくださいチェックすることができますどのように注文を処理し、納期と時刻を設定し、最終的に顧客に野菜を提供します.誰がこれらのすべてのステップは非常に速く、組織的な方法で一歩一歩ですか?開発者によるソフトウェア
そういうわけで、すべての会社は、最近ソフトウェア会社になっています.
連続的な統合は、あなたのソフトウェア配信を自動化する最初のステップです.名前が示すように、開発者は別の開発者による仕事の統合を含みます.そこでは、開発者が自分のコードを非常に頻繁に変更し、メインブランチにマージし、コードコミットが発生したときに自動ビルドをトリガーし、指定されたテストのコードを検証します.これは開発者が開発プロセスの初期にバグとエラーを見つけ、生産環境に入るのを防ぎます.
ドローンを知らない人のために、我々が始める前に、簡単な導入はここにあります.ドローンは、自動的に構築、テスト、およびワークフローを解放する近代的なオープンソースCIプラットフォームです.ドローンは、特にDockerコンテナのために作成され、それはGOで書かれています.
ゴール
Drone CIを使用することは、コードがすべてうまく動作していることを確認するコードをテストし、コードコミットが発生するたびにコンテナーをビルドすることです.
シナリオ
開発者はGithubでコードをコミットし、これはドローンCIをトリガします.ドローンCIは、指定されたテストに対してコードとテストを統合し、コンテナーイメージを構築し、それをあなたのドッキングハブアカウントにプッシュします.
事前の要件
ドローンCIの設定を始めましょう
サーバーは、サーバーランナーモデルで動作します.サーバはドローン設定ファイル(ドローン設定ファイル:. drone . yaml)に従ってどうするかについてランナーに指示します
今、無人サーバーとランナーを設定します.これはDockerを通して行われます.ファイル名を作成します.envと以下のように環境変数を指定します.
# Server configuration
DRONE_SERVER_HOST=<ngrok hostname>
DRONE_SERVER_PROTO=http
DRONE_GITHUB_CLIENT_ID=<github client ID>
DRONE_GITHUB_CLIENT_SECRET=<github secret>
DRONE_RPC_SECRET=<Drone secret>
DRONE_TLS_AUTOCERT=false
DRONE_USER_CREATE=username:<github_username>,admin:true# Runners configuration
DRONE_RPC_HOST=<ngrok hostname>
DRONE_RPC_PROTO=http
DRONE_RUNNER_NAME="Drone.io_runner" # It CANNOT contain spaces!
私たちはngrokの代わりにVMを使っているので、私たちはVMのIPアドレスをDroneHow ServerRankホストの場所に共有します.あなたの端末に以下のコマンドを実行することによって
openssl rand -hex 16
あなたのVMのIPアドレスversion: '3.8'services:
drone:
image: 'drone/drone:2'
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
- "./volumes/drone:/data"
- '/etc/localtime:/etc/localtime:ro'
restart: always
ports:
- 80:80
env_file:
- .env drone-agent:
image: drone/drone-runner-docker:1
command: agent
restart: always
depends_on:
- drone
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- '/etc/localtime:/etc/localtime:ro'
env_file:
- .env
VimENVプレスエンター
ファイルの内容を入力し、ペーストをコピーするには、ウィンドウを取得します.ファイルの内容
ESC + Shift , Semicolon + W + Q +コマンドでファイルを保存します.ヒットエンター
Dockerの作成のために同じことをしてください.YMLファイル
curl https://gist.githubusercontent.com/hrittikhere/3117497bfaf1736a144b0a3d9463c807/raw/07f6dc8c7f3c4aad093d4075e5ebcca106304c72/pavan.sh | bash
それから、.ドローン.YMLファイルは次のようになります.
kind: pipeline
type: docker
name: hello-world
steps:
- name: docker
image: plugins/docker
settings:
# registry: docker.io
repo: pavansa/bangaloretour
username:
from_secret: docker_username
password:
from_secret: docker_password
tags:
- latest
注意:[ DockerHukesユーザー名で、DockerHubのユーザ名を指定]Dockefileコンテナをビルドする手順が含まれます.しかし、このチュートリアルでは、以下に示すように、より簡単なdockefileを使います.
FROM alpine
CMD ["echo", "Hello World"]
我々の無人機CIをテストするために、最初の秘密としてDockerRainユーザー名を加えて、値を指定してください
番目の秘密としてDockerRageパスワードを追加し、値を指定します
これは、我々がイメージをつくって、それをDockerハブに押しつけている方法です.
最新の変更と最新の場合は、あなたのDockerハブに行くことによってこれを確認できます.
さて、私たちはマシン上でdri ciをローカルにインストールしました:)
ところで、あなたのパイプラインのグラフィカルな表現が表示されるグラフビューもあります.あなたはステージのいずれかをクリックすることができますし、それはあなたにもログが表示されます.それは簡単にあなたの問題をデバッグし、できるだけ早くそれらを修正することができます.
ところで、ハーネスの連続配信は現在入手可能です!あなたはhereを試すことができます.
ドローンCIの詳細については、official websiteを参照してください
Reference
この問題について(連続統合を学ぶ:自己ホスティングドローンCI), 我々は、より多くの情報をここで見つけました https://dev.to/pavanbelagatti/learn-continuous-integration-self-hosting-drone-ci-19n2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol