LoginSignup
1
2

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-22

インストール

# 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
1
2
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
1
2