概要
Microsoft が公式で提供している docker イメージがあるのですがこれはもうすでにメンテナンスされていません
非公式ではありますがメンテナンスされているイメージがあるので今回はそれを使ってみました
環境
- Azure Devops (2024/03/078時点)
- macOS 11.7.10
- Ubuntu 22.04 (Agent)
- azure-pipelines-agent 3.234.0
最初に
公式の見解としては自分でビルドしてくださいというのが方針のようです
https://learn.microsoft.com/ja-jp/azure/devops/pipelines/agents/docker?view=azure-devops
なので今回紹介するイメージがメンテナンスされなくなった場合などは公式の手順を参考に自分でイメージをビルドして使いましょう
docker 上でエージェントの起動
コマンドは以下のとおりです
エージェントの状態を保持するために /var/azdo/_work
をホスト側のディレクトリでマウントしておきます
- mkdir work
docker run \
-e AZDO_URL=https://dev.azure.com/xxx \
-e AZDO_TOKEN=xxx\
-e AZDO_AGENT=docker \
-e AZDO_POOL=test_pool \
-v $(pwd)/work:/azdo/agent/_work \
-it czon/azdo-agent:ubuntu-20.04-3.234.0
-e AZDO_WORK=/var/azdo/$AZDO_AGENT
というオプションで任意のワークディレクリを指定できるのですがなぜかこれを指定すると mkdir: cannot create directory '': No such file or directory
になるので指定を外しました
起動ログ
起動が完了した際のログは以下のとおりです
Configure Agent ...
___ ______ _ _ _
/ _ \ | ___ (_) | (_)
/ /_\ \_____ _ _ __ ___ | |_/ /_ _ __ ___| |_ _ __ ___ ___
| _ |_ / | | | '__/ _ \ | __/| | '_ \ / _ \ | | '_ \ / _ \/ __|
| | | |/ /| |_| | | | __/ | | | | |_) | __/ | | | | | __/\__ \
\_| |_/___|\__,_|_| \___| \_| |_| .__/ \___|_|_|_| |_|\___||___/
| |
agent v3.234.0 |_| (commit 21ca259)
>> End User License Agreements:
Building sources from a TFVC repository requires accepting the Team Explorer Everywhere End User License Agreement. This step is not required for building sources from Git repositories.
A copy of the Team Explorer Everywhere license agreement can be found at:
/azdo/agent/license.html
>> Connect:
Connecting to server ...
コンパネでエージェントの確認
Azure Devops のコンパネでもエージェントが動作しているのが確認できます
少し説明
- AZDO_URL・・・組織名付きで Azure Devops の URL を指定します、エージェントからは指定のエンドポイントにアクセスできる必要があります
- AZDO_TOKEN・・・Azure Devops で作成した PAT (個人アクセストークン) を指定します
- AZDO_AGENT・・・エージェント名を入力します
- AZDO_POOL・・・エージェントを登録するプール名を指定します、デフォルトでは default プールに作成されます
PAT の取得
こちらを参考に取得しておきましょう
使用できるタグ
現状だと Ubuntu20 が最新のようです
詳しくは dockerhub のタグ情報を確認してください
https://hub.docker.com/r/czon/azdo-agent/tags
最後に
Azure Devops のパイプラインエージェントを docker で起動してみました
非公式のイメージですが自分でビルドするのが面倒な場合には便利です
基本はバイナリですが docker イメージにしておけば k8s 上でも動作可能なので便利です
0 件のコメント:
コメントを投稿