
JFrog CLI は、JFrog Artifactory や JFrog Xray とスムーズに連携するシンプルなインターフェイスを提供する便利なクライアントです。簡素化された CLI コマンドにより、保守が容易で、効率的かつ信頼性の高い、読みやすい自動化スクリプトを作成できます。
バージョン 1.14.0 から、JFrog CLI は npm、Maven と Gradle、GO ビルドのサポートに加えて、Docker ビルドの管理にも対応しました。
この記事では、Docker CLI コマンドを使って Artifactory で Docker ビルドを管理し、Xray を使って簡単にスキャンする方法を紹介します。以下のステップに従って、完全なプロセスを説明します。
- JFrog CLI を使用した Artifactory の設定
- Docker イメージのビルド
- ビルド情報のパブリッシュ
- Xray を使用したビルドのスキャン
- ビルドのプロモーション

準備
はじめに、以下の準備を行います。
- 次のコマンドを使用して、JFrog CLI をインストールします。
- $ curl -fL https://getcli.jfrog.io | sh
- 環境を設定します。
- Docker クライアントをダウンロードしてインストールします。
- Artifactory をダウンロードします。
- Xray をダウンロードします。
- Docker レジストリを設定します。
ステップ 1: JFrog CLI を使用した Artifactory の設定
Artifactory サーバーを設定するには、次の config CLI コマンドを実行するだけです。
$jfrog config add
以下のように、Artifactory のサーバー ID、プラットフォーム URL、および認証情報を追加します。

ステップ 2: Docker イメージのビルド
リバース プロキシを使用して、Artifactory の Docker レジストリを設定します。または、非運用環境をセットアップする場合は、新しいプロキシレスオプションを使用して Artifactory を設定することもできます。
Docker クライアントと Artifactory Docker レジストリが正しく設定されていることを確認するため、次のコマンドを実行して、hello-world Docker イメージをプルして Artifactory にプッシュします。
$ docker login <artifactory_docker_registery> $ docker pull <image_name>:<image_tag> $ docker tag <image_name>:<image_tag> <artifactory_docker_registery>/<image_name>:<image_tag> $ docker push <artifactory_docker_registery>/<image_name>:<image_tag>
例:
$ docker login my-docker-registry.io $ docker pull my-docker-image:latest $ docker tag my-docker-image:latest my-docker-registry.io/my-docker-image:latest $ docker push my-docker-registry.io/my-docker-image:latest
Artifactory にデプロイされたら、JFrog CLI を使ってイメージ レイヤーを Artifactory にプッシュする準備ができました。
注: Docker イメージをビルドする際、docker push コマンドはイメージ レイヤーを Artifactory サーバーにデプロイしてビルド情報を収集します。
イメージとビルド情報を Artifactory にプッシュするには、docker push image CLI コマンドを実行します。
jfrog rt dp <artifactory_docker_registery>/<image_name>:<image_tag> <local_repository_name> --build-name=<build_name> --build-number=<build_version>
例:
$ jfrog rt dp my-docker-registry.io/my-docker-image:latest docker-repo --build-name=docker-build --build-number=1.0.0

ステップ 3: ビルド情報のパブリッシュ
jfrog build publish コマンドを使用して、ビルド情報を Artifactory にパブリッシュします。
$ jfrog rt bp docker-build 1.0.0

ビルド情報が Artifactory に表示されます。

package viewer を使用して、Artifactory UI から直接、異なる Docker イメージ レイヤーを確認できます (Artifactory バージョン 5.10 以降で利用可能です)。

ステップ 4: Xray を使用したビルドのスキャン
JFrog Xray は Artifactory と連携して、アプリケーション ライフサイクルのどの段階においても、バイナリ ソフトウェア コンポーネントのユニバーサルな分析を実行します。バイナリ コンポーネントとそのメタデータをスキャンし、あらゆるレベルの依存関係を再帰的に調べることで、Xray は組織内のコンポーネントに潜む問題に対して、これまでにない可視性を提供します。
Xray を使用してビルドをスキャンするには、選択済みビルド リストにビルドを追加する必要があります。

そして、ビルド用の新しいウォッチを設定します。

注: この統合には、JFrog Artifactory v4.16 以上と JFrog Xray v1.6 以上が必要です。
ビルドをスキャンするには、build scan コマンドを使用します。
$ jf bs docker-build 1.0.0
ステップ 5: ビルドのプロモーション
ビルド プロモーションは通常、テストやビルド スキャンの後に行われ、ビルド アーティファクトとその依存関係をターゲット リポジトリに移動またはコピーします。これは必須ではありません。プロモーションすることで、Docker イメージを運用環境にデプロイする前に何度もビルドする必要がなくなります。これにより、テストしたイメージを確実に運用環境にデプロイできます。
ビルドをプロモーションするには、build promotion コマンドを実行します。
$ jf rt bpr docker-build 1.0.0 docker
これで完了です!
JFrog CLI と JFrog Xray を使い始めましょう。
記事参照: Manage Your Docker Builds with JFROG CLI in 5 Easy Steps!