Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

Artifactory on Dockerをセットアップして、MavenからDeploy(アップロード)するまで

More than 3 years have passed since last update.

インストール

# docker run -d -v /var/opt/jfrog/artifactory:/var/opt/jfrog/artifactory -p 8081:8081 docker.bintray.io/jfrog/artifactory-oss:latest

執筆時の最新バージョン: 5.1.4

セットアップ

ブラウザでhttp://host:8081にアクセスすると、ウィザードが起動
Configure a Proxy Serverはスキップ
Repository Typeは"Generic"と"Maven"を選択

これでもう、Web画面からリポジトリにDeploy(アップロード)が可能。
Set Me Upで各リポジトリへのDeploy方法がわかる。

MavenからのDeploy設定

releaseビルド用とsnapshotビルド用、各々にlocalありなしのリポジトリが作られているが、localの方が実際のリポジトリで、なしの方はVirtualリポジトリで複数のリポジトリをまとめて1つのURLでアクセスできるようにする機能のようなので、とりあえずはlocalの方を使うということでOKそう。

あとは、libs-snapshot-localリポジトリのSet Me Upを開いて、snippetをpom.xmlにコピペするだけ。ただ、これだけだとdeployしたときにPermission deniedになってしまうので、anonymousでデプロイできるようにArtifactoryのPermissions設定を変更する。Anythingを選んで、Usersタブを開き、anonymousユーザに対して、Deploy/Cache権限を与える。

これで、maven deployでデプロイができるようになる。なんと簡単。

セキュリティ設定

だた、このままでは公開して外から使うのは危険なため、以下の設定をする。
- anonymousを無効にして、ユーザ認証を必須にする
- HTTPSにする

ユーザ認証

ArtifactoryでPermissionsの設定でAnythingからanonymousユーザの権限をすべてとり、MavenのUser Settingsファイルsettings.xmlに以下を追加。

settings.xml
    ...
    <servers>
        ...
        <server>
            <id>snapshots</id>
            <username>admin</username>
            <password>password</password>
        </server>
        ...
    </servers>
    ...

HTTPS

以下のような構成にする。

Client -----------> Apache ---------> Artifactory
          HTTPS               AJP

Docker版のArtifactoryはもとから8019番でajp接続を受け付けるようになっているため、Artifactory側の設定変更は、コンテナ起動の際のポート設定を8019番にするだけ。

# docker run -d -v /var/opt/jfrog/artifactory:/var/opt/jfrog/artifactory -p 8019:8019 docker.bintray.io/jfrog/artifactory-oss:latest

あとはApacheの設定。

# a2enmod proxy_ajp
# vi /etc/apache2/sites-available/default-ssl.conf
<VirtualHost _default_:443>
        ...
        ProxyPreserveHost on
        ProxyPass /artifactory ajp://localhost:8019/artifactory
</VirtualHost>
# service apache2 restart
tontan9616
ハードウェア中心のベンダーで、自社ソフトウェア製品の導入支援を細々とやってます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away