Gitea

Updated 2 years ago by Admin

この記事では、Gitea用のDroneサーバをインストールする方法について説明します。サーバは、DockerHubで配布される最小限のDockerイメージとしてパッケージ化されています。

Droneを専用インスタンスにインストールすることを強くお勧めします。ネットワークの複雑さのため、DroneとGiteaを同じマシンにインストールすることはお勧めしません。また、docker-composeを使用してDroneとGiteaを同じマシンにインストールすることは絶対にお勧めしません。

ステップ1:準備

OAuthアプリケーションを作成する

Gitea OAuthアプリケーションを作成します。コンシューマキーとコンシューマシークレットは、Giteaリソースへのアクセスを承認するために使用されます。

承認コールバックURLは、以下の形式とパスに一致する必要があり、正確なサーバスキームとホストを使用する必要があります。
Application Create

Application View
共有シークレットを作成する

共有シークレットを作成して、ランナーと中央のDroneサーバ間の通信を認証します。

opensslを使用して、共有シークレットを生成できます。

$ openssl rand -hex 16
bea26a2221fd8090ea38720fc445eca6


ステップ2:ダウンロード

Droneサーバは、軽量のDockerイメージとして配布されます。イメージは自己完結型であり、外部依存関係はありません。

$ docker pull drone/drone:1


ステップ3:構成

Droneサーバは、環境変数を使用して構成されます。この記事では、以下に定義する構成オプションのサブセットについて説明します。構成オプションの完全なリストについては、構成を参照してください。

DRONE_GITEA_CLIENT_ID

  • 必要な文字列値は、Gitea oauthクライアントIDを提供します。
  • DRONE_GITEA_CLIENT_SECRET
    必要な文字列値は、Gitea oauthクライアントシークレットを提供します。
  • DRONE_GITEA_SERVER
    必要な文字列値は、Giteaサーバアドレスを提供します。たとえば、https://gitea.company.comの場合、http(s)に注意してください。そうしないと、Giteaの「サポートされていないプロトコルスキーム」でエラーが表示されます。
  • DRONE_GIT_ALWAYS_AUTH
    オプションのブール値は、パブリックリポジトリのクローンを作成するときに認証するようにDroneを構成します。
  • DRONE_RPC_SECRET
    必須の文字列値は、前の手順で生成された共有シークレットを提供します。これは、サーバとランナー間のrpc接続を認証するために使用されます。サーバとランナーには同じシークレット値を指定する必要があります。
  • DRONE_SERVER_HOST
    必要な文字列値は、外部ホスト名またはIPアドレスを提供します。 IPアドレスを使用する場合は、ポートを含めることができます。例:drone.company.com
  • DRONE_SERVER_PROTO
    必要な文字列値は、外部プロトコルスキームを提供します。この値はhttpまたはhttpsに設定する必要があります。 sslまたはacmeを設定した場合、このフィールドのデフォルトはhttpsです。


ステップ4:サーバを起動します

サーバコンテナは、以下のコマンドで起動できます。コンテナは環境変数を介して構成されます。構成パラメータの完全なリストについては、構成リファレンスを参照してください。

1  docker run \
2 --volume=/var/lib/drone:/data \
3 --env=DRONE_GITEA_SERVER={{DRONE_GITEA_SERVER}} \
4 --env=DRONE_GITEA_CLIENT_ID={{DRONE_GITEA_CLIENT_ID}} \
5 --env=DRONE_GITEA_CLIENT_SECRET={{DRONE_GITEA_CLIENT_SECRET}} \
6 --env=DRONE_RPC_SECRET={{DRONE_RPC_SECRET}} \
7 --env=DRONE_SERVER_HOST={{DRONE_SERVER_HOST}} \
8 --env=DRONE_SERVER_PROTO={{DRONE_SERVER_PROTO}} \
9 --publish=80:80 \
10 --publish=443:443 \
11 --restart=always \
12 --detach=true \
13 --name=drone \
14 drone/drone:1


ステップ5:ランナーをインストールする

サーバが稼働したら、ビルドパイプラインを実行するためにランナーをインストールする必要があります。詳細なインストール手順については、ランナーのインストールドキュメントを参照してください。


How did we do?