第6章 制限された環境でのアーティファクトリポジトリーの使用
本セクションでは、自己署名証明書を使用して、インハウスリポジトリーのアーティファクトと連携するようにさまざまなテクノロジースタックを手動で設定する方法を説明します。
6.1. Maven アーティファクトリポジトリーの使用 リンクのコピーリンクがクリップボードにコピーされました!
Maven は 2 つの場所に定義されたアーティファクトをダウンロードします。
-
プロジェクトの
pom.xml
ファイルで定義されるアーティファクトリポジトリー。pom.xml
でのリポジトリーの設定は Red Hat CodeReady Workspaces に固有のものではありません。詳細は、POM に関する Maven のドキュメントを参照し てください。 -
settings.xml
ファイルで定義されるアーティファクトリポジトリー。デフォルトでは、settings.xml
は'~/.m2/settings.xml
" にあります。
6.1.1. settings.xmlでのリポジトリーの定義 リンクのコピーリンクがクリップボードにコピーされました!
example.server.org
で独自のアーティファクトリポジトリーを指定するには、settings.xml
ファイルを使用します。これには、settings.xml
が Maven ツールを使用するすべてのコンテナー(特に Maven コンテナーおよび Java プラグインコンテナー)にあることを確認します。
デフォルトでは、settings.xml
は Maven プラグインコンテナーの永続ボリューム上にある <home dir>/.m2
ディレクトリーにあり、一時モードにない場合はワークスペースを再起動するたびにファイルを再作成する必要はありません。
Maven ツールを使用する別のコンテナーがあり、このコンテナーと <home dir>/.m2
フォルダーを共有する場合は、devfile でこの特定のコンポーネントのカスタムボリュームを指定する必要があります。
手順
example.server
します。.org でアーティファクトリポジトリーを使用するように settings.
xml ファイルを設定Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.1.2. ワークスペース全体にまたがる Maven settings.xml ファイルの定義 リンクのコピーリンクがクリップボードにコピーされました!
すべてのワークスペースで独自の settings.xml
ファイルを使用するには、ワークスペースと同じプロジェクトに Secret オブジェクト(希望の名前)を作成します。必要な settings.xml
の内容を Secret の data セクションに配置します(同じディレクトリーに存在する必要のある他のファイルとともに該当する可能性があります)。ファイルまたは環境変数をワークスペースコンテナーにマウントすることで、シークレットのラベル付けおよびこのシークレットにアノテーションを付けます。これにより、Secret の内容がワークス ペース Pod にマウントされるようにします。この Secret を使用するには、以前に実行したワークスペースを再起動する必要があります。
前提条件
これは、プライベート認証情報を Maven リポジトリーに設定するために必要です。詳細は、Maven ドキュメント Settings.xml#Servers を参照してください。
この settings.xml
をマウントするには、以下を実行します。
手順
settings.xml
を base64 に変換します。cat settings.xml | base64
$ cat settings.xml | base64
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なアノテーションおよびラベルも定義する新規ファイル
secret.yaml
に出力をコピーします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow このシークレットをクラスターに作成します。
oc apply -f secret.yaml
$ oc apply -f secret.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
新しいワークスペースを開始します。Maven コンテナーには、元のコンテンツと共に
/home/user/.m2/settings.xml
が表示され
ます。
6.1.2.1. OpenShift 3.11 および OpenShift <1.13 リンクのコピーリンクがクリップボードにコピーされました!
1.13 よりも古いバージョンの OpenShift では、複数の VolumeMounts が同じパスに配置することができません。したがって、devfile のボリューム /home/user/.m2
および /home/user/.m2/settings.xml
でシークレットを設定すると競合に解決されます。これらのクラスターでは、devfile の Maven リポジトリーのボリュームとして /home/user/.m2/repository
を使用します。
6.1.3. Java プロジェクトでの自己署名証明書の使用 リンクのコピーリンクがクリップボードにコピーされました!
内部アーティファクトリポジトリーには、Java ではデフォルトで信頼される認証局によって署名された証明書がありません。通常は、内部企業の認証局によって署名されるか、自己署名されます。Java トラストストアに追加して、これらの証明書を受け入れるツールを設定します。
手順
リポジトリーサーバーからサーバー証明書ファイルを取得します。多くの場合、これは
tls.crt
という名前のファイルです。Java トラストストアファイルを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
/projects/maven/truststore.jks
にトラストストアファイルをアップロードして、すべてのコンテナーで利用できるようにします。
トラストストアファイルを追加します。
Maven コンテナーで以下を行います。
javax.net.ssl
システムプロパティーをMAVEN_OPTS
環境変数に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ワークスペースを再起動します。
Java プラグインコンテナーで以下を行います。
devfile に、Java 言語サーバーの
javax.net.ssl
システムプロパティーを追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow