0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DockerコンテナでJFrog Artifactory Proを起動する

0
Posted at

はじめに

JFrog Artifactory ProをDockerコンテナとして起動したので、その作業手順を記載します。

Artifactoryは、Maven、npm、Docker、PyPIなどのパッケージやビルド成果物を管理するためのリポジトリ管理製品です。

本記事では、動作確認を目的として、Artifactoryに組み込まれているDerbyデータベースを使用します。(現在、JFrogでは、本番環境でのDerbyの使用を推奨していません。本番環境では、外部PostgreSQLの使用が推奨されています。)

前提環境

[OS]

  • Red Hat Enterprise Linux 9
  • Docker Engineがインストール済み

[ソフトウェア]

  • JFrog Artifactory Pro 7.71.23
  • 組み込みDerbyデータベース

[その他]

  • ホスト側の8081番および8082番ポートが使用可能
  • (Artifactory Proのライセンスを用意済み)

Artifactory 7.xでは、Web UIへのアクセスに8082番ポートを使用します。8081番ポートはArtifactory APIなどで使用されます。

事前準備

Artifactoryの設定、ログ、リポジトリデータを保存するディレクトリを作成します。

sudo mkdir -p /opt/jfrog/artifactory/var

Artifactory公式Dockerイメージでは、通常UIDおよびGIDとして1030が使用されます。

作成したディレクトリの所有者を変更します。

sudo chown -R 1030:1030 /opt/jfrog/artifactory/var

ディレクトリを確認します。

ls -ld /opt/jfrog/artifactory/var

以下のようにUIDおよびGIDが1030となっていればOKです。

drwxr-xr-x. 2 1030 1030 6 Jul 13 10:00 /opt/jfrog/artifactory/var

JFrogの公式手順でも、Artifactory用ディレクトリの所有者としてUIDおよびGIDの1030が例示されています。

作業手順

Dockerイメージの取得

以下のコマンドでArtifactory ProのDockerイメージを取得します。

docker pull releases-docker.jfrog.io/jfrog/artifactory-pro:7.71.23

取得したイメージを確認します。

docker image ls releases-docker.jfrog.io/jfrog/artifactory-pro

以下のように表示されます。

REPOSITORY                                                 TAG
releases-docker.jfrog.io/jfrog/artifactory-pro             7.71.23

Artifactory 7.xの公式Dockerイメージは、releases-docker.jfrog.ioから配布されています。

Artifactoryコンテナの起動

以下のコマンドでArtifactoryコンテナを起動します。

docker run -d \
  --name artifactory \
  --restart unless-stopped \
  -p 8081:8081 \
  -p 8082:8082 \
  -v /opt/jfrog/artifactory/var:/var/opt/jfrog/artifactory \
  releases-docker.jfrog.io/jfrog/artifactory-pro:7.71.23

設定内容は以下のとおりです。

設定 内容
--name artifactory コンテナ名
--restart unless-stopped Docker再起動時にコンテナを自動起動
-p 8081:8081 Artifactory API用ポート
-p 8082:8082 RouterおよびWeb UI用ポート
-v Artifactoryデータの永続化

起動したコンテナを確認します。

docker ps --filter name=artifactory

起動ログの確認

Artifactoryの起動ログを確認します。

docker logs -f artifactory

初回起動では、必要なディレクトリやデータベースが作成されるため、起動完了まで時間がかかる場合があります。

ログに重大なエラーが出力されていないことを確認します。

別のターミナルから、以下のコマンドでコンテナの状態を確認します。

docker ps --filter name=artifactory

ログの確認を終了する場合は、Ctrl+Cを入力します。

Ctrl+Cを入力しても、Artifactoryコンテナは停止しません。

Web UIへのアクセス

ブラウザから以下のURLへアクセスします。

http://<Artifactoryサーバー>:8082/ui/

ログイン画面が表示されます。

初期ユーザーおよび初期パスワードは以下のとおりです。

ユーザー名:admin
パスワード:password

初回ログイン後、ウィザードに従って管理者パスワードを変更します。

初期パスワードはセキュリティ上のリスクとなるため、必ず変更します。

(使う場合)ライセンスの登録

Artifactory Proを使用する場合は、ライセンスを登録します。

管理画面から以下の順で画面遷移します。

Administration
  > Licensing

ライセンスキーを入力し、登録します。

ライセンスの登録が完了すると、Artifactory Proの機能を使用できるようになります。

動作確認

Liveness APIの確認

以下のコマンドでArtifactoryのLiveness APIへアクセスします。

curl -fsS \
  http://localhost:8082/artifactory/api/v1/system/liveness

以下のように表示されればOKです。

OK

リポジトリの作成

管理画面から以下の順で画面遷移します。

Administration
  > Repositories
  > Repositories
  > Local

「Create a Repository」をクリックします。

今回は動作確認のため、Genericリポジトリを作成します。

以下の値を入力します。

項目 設定値
Package Type Generic
Repository Key test-generic-local

必要な情報を入力し、「Create Local Repository」をクリックします。

作成が完了すると、Local Repositoriesの一覧にtest-generic-localが表示されます。

ファイルのアップロード

動作確認用のファイルを作成します。

echo "Artifactory test file" > test.txt

作成したファイルをアップロードします。

curl -u admin:<変更後のパスワード> \
  -T test.txt \
  http://localhost:8082/artifactory/test-generic-local/test.txt

以下のようなJSONが表示されればアップロードは成功です。

{
  "repo": "test-generic-local",
  "path": "/test.txt"
}

アップロードしたファイルをダウンロードします。

curl -u admin:<変更後のパスワード> \
  -o downloaded-test.txt \
  http://localhost:8082/artifactory/test-generic-local/test.txt

ファイルの内容を確認します。

cat downloaded-test.txt

以下のように表示されればOKです。

Artifactory test file

データ永続化の確認

Artifactoryコンテナを停止、削除します。

docker stop artifactory
docker rm artifactory

同じ永続化ディレクトリを指定して、再度コンテナを起動します。

docker run -d \
  --name artifactory \
  --restart unless-stopped \
  -p 8081:8081 \
  -p 8082:8082 \
  -v /opt/jfrog/artifactory/var:/var/opt/jfrog/artifactory \
  releases-docker.jfrog.io/jfrog/artifactory-pro:7.71.23

Web UIへアクセスし、以下が残っていることを確認します。

  • 作成したユーザー設定
  • test-generic-localリポジトリ
  • アップロードしたtest.txt

データが残っていれば、永続化設定は完了です。

補足

今回使用したDerbyデータベースは、簡易的な検証環境向けです。

JFrogでは、Derbyは機能、性能および耐障害性に制限があるため、本番環境での使用を推奨していません。本番環境では外部PostgreSQLの使用が推奨されています。

次の記事では、今回作成したDerby環境のデータをPostgreSQLへ移行します。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?