JFrog ArtifactoryはArtifact、つまりプロジェクトの成果物のリポジトリです。
競合製品としてはMaven Central Repositoryに使われているSonatypeなんかが有名。
JFrogの特徴はなんといっても対応しているプラットフォームの幅の広さ。MavenはもちろんのことNPM、Nuget、Gem、Dockerなどなど考えつく大概のパッケージ形式に対応しています。
Maven、Gradle、IvyのみをサポートするArtifactory OSSから、全部入りのArtifactory Enterpriseまで、5種類の製品展開があります。
https://jfrog.com/open-source/より抜粋
以下、JFrog Artifactory Proを試しにインストールしてみたログです:
export JFROG_HOME=~/jfrog mkdir -p $JFROG_HOME/artifactory/var/etc/ cd $JFROG_HOME/artifactory/var/etc/ touch ./system.yaml sudo chown -R 1030:1030 $JFROG_HOME/artifactory/var sudo vi ./system.yaml
system.yaml はマルチノード構成にする際など、shared.node.idとshared.node.ipを設定しておく必要があるそうです。
今回はシングルノード構成だけれども、一応以下のように設定しておきました
https://pastebin.com/Lfy2qcFN
起動と確認は以下の通り。今回はArtifactory Proを選んでいます。
$ docker run --name artifactory -v $JFROG_HOME/artifactory/var/:/var/opt/jfrog/artifactory -d -p 8081:8081 -p 8082:8082 docker.bintray.io/jfrog/artifactory-pro:latest $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9bde3c83b9e1 docker.bintray.io/jfrog/artifactory-pro:latest "/entrypoint-artifac…" 14 seconds ago Up 13 seconds 0.0.0.0:8081-8082->8081-8082/tcp artifactory
これでArtifactoryが起動していますが、自分の環境では8081,8082ポートが外向けに空いている訳ではないのでドキュメントを参考にNginxのリバースプロキシを設定します。
ドキュメントにあるrewrite ^/(v1|v2)/(.*) /artifactory/api/docker/$repo/$1/$2;の行があると起動できませんでしたのでとりあえず削除しています。
server { listen 443 ssl; server_name jfrog.samuraism.com; if ($http_x_forwarded_proto = '') { set $http_x_forwarded_proto $scheme; } ## Application specific logs ## access_log /var/log/nginx/yourdomain.com-access.log timing; ## error_log /var/log/nginx/yourdomain.com-error.log; rewrite ^/$ /ui/ redirect; rewrite ^/ui$ /ui/ redirect; chunked_transfer_encoding on; client_max_body_size 0; location / { proxy_read_timeout 2400s; proxy_pass_header Server; proxy_cookie_path ~*^/.* /; proxy_pass http://localhost:8082; proxy_next_upstream error timeout non_idempotent; proxy_next_upstream_tries 1; proxy_set_header X-JFrog-Override-Base-Url $http_x_forwarded_proto://$host:$server_port; proxy_set_header X-Forwarded-Port $server_port; proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location ~ ^/artifactory/ { proxy_pass http://localhost:8081; } } }
しばらくすると https://jfrog.samuraism.com/ui/login/ で管理画面を開けます。
デフォルトのID、パスワードはadmin/password
初期パスワードを設定。1PasswordとかBitwardenで生成したパスワードを設定すると安心
評価版ライセンスを入れました
プロキシ設定。自分の環境では必要ないのでスキップ
リポジトリ、なんとなく使う可能性があるものをチェック。たぶん後からでも追加できる。
早速肝心のMavenを指定し忘れていたことに気がつきました。まぁいいや、後で設定してみる。
インストール完了!
Nginxのリバースプロキシの設定はAdministration > Artifactory > HTTP Settings > Reverse Proxy Settings から生成することも出来ます。
もっともこの画面にたどり着くのにリバースプロキシが必要なのですが、sshポートフォワードして最初http://localhost:8081/uiにアクセスして生成するのもありですね。