Synology DS218 + Mavenプライベートサーバー(nexus3)

背景

私はJavaエンジニアです。自宅にいるときに、デスクトップ、ラップトップ、および仮想マシンを使用してMavenプロジェクトをコンパイルおよびビルドできます。自宅にMavenプライベートサーバーがある場合、ビルド速度の影響は明らかです。

もつれた

プライベートサーバーを展開するコンピューターを準備した後、起動するのに24時間かかりますか?少し無駄に見えるので、使用するときはオンにして、終わったらオフにしてください。少し面倒です(怠惰で私を叱りたいですか?あなたは正しく叱られました...)

Synology DS218 +

Synology DS218 +は自宅にあります。長い間、家族全員にサービスを提供するために24時間オンになっています。私服をここに持参できれば、以前のもつれはなくなったようです。

  1. 下の画像は、DS218 +が購入したばかりのものです。2台のNASハードドライブが安定して稼働しています。
    ここに画像の説明を挿入
  2. 次の画像はオンラインで購入したメモリスティックです。現在、合計2 + 8 = 10Gのメモリであり、十分なメモリがあれば十分です。
    ここに画像の説明を挿入

アイデア

実際、操作は非常に簡単です。SynologyにはDockerサービスがあり、Dockerを使用してネクサスを展開できるため、この記事は実際にはSynology Dockerの基本的な操作の記録です。以下に注意点を示します。

  1. コンテナ港
  2. コンテナのデータ量
  3. ファイルの権限
  4. ログインコンテナ操作

環境情報

  1. Synologyシステム:DSM 6.2.2-24922 Update 4
  2. ネクサスを導入する前のSynologyのリソース:
    ここに画像の説明を挿入
  3. 以下に示すように、Dockerを開き、レジストリページnexus検索し、sonatype / nexus3を見つけ、ラベル3.19.1を選択します。
    ここに画像の説明を挿入
  4. 画像がダウンロードされたら、画像ページで画像を選択し、開始ボタンをクリックします。
    ここに画像の説明を挿入
  5. 起動ページで[ 詳細設定]をクリックします
    ここに画像の説明を挿入
  6. コンテナが自動的に再起動し、デスクトップショートカットが作成されるようにします。
    ここに画像の説明を挿入
  7. データボリュームマッピングの場合、次の図に従って、ホストマシンにnexus3という名前の新しいフォルダーを作成します
    ここに画像の説明を挿入
  8. 次にコンテナの/ nexus-dataディレクトリをホストのnexus3にマップして、コンテナのすべてのデータを保存できるようにします。
    ここに画像の説明を挿入
  9. ポートマッピング。ホストの8081ポートが占有されていない場合は、8081に直接マッピングします。そうでない場合は、占有されていないポートに変更します。
    ここに画像の説明を挿入
  10. 設定が完了したら、ウィザードを確認してコンテナを実行し、 [ 適用 ]をクリックしてnexus3コンテナを作成します。
    ここに画像の説明を挿入
  11. 私はそれがこのように行われたと思ったが、多くのエラーメッセージがポップアップすることを期待していなかった:
    ここに画像の説明を挿入
  12. 以下に示すように、コンテナログを表示します。
    ここに画像の説明を挿入
  13. 私はすぐに問題を見つけました:ホストがコンテナーのディレクトリにマップされ、コンテナープロセスがアクセス許可のために書き込めませんでした:
    ここに画像の説明を挿入
  14. セキュリティ上の理由から、ホストのnexus3ディレクトリとコンテナは自由に操作できません。ここでは、次の図に示すように、このディレクトリの書き込み権限を解放し、File Stationを使用してこのディレクトリを設定します。
    ここに画像の説明を挿入
  15. 書き込み権限を増やします。
    ここに画像の説明を挿入
  16. 上記の操作が完了すると、予期しない終了が発生するたびにコンテナーが自動的に再起動するため、待機が始まります。最後に、正常な起動のログが表示されます。
    ここに画像の説明を挿入

操作nexus3

  1. SynologyのイントラネットIPは192.168.50.42なので、ブラウザのアクセスアドレス:http://192.168.50.42:8081で、おなじみのページが表示されます。
    ここに画像の説明を挿入
  2. 次に直面する質問は、ログインパスワードの取得方法です。nexusのデフォルトパスワードはコンテナの/nexus-data/admin.passwordファイルに格納されているため、2つの方法で取得できます。
  3. コンテナの/ nexus-dataディレクトリは、ホストマシンのdocker / nexus3ディレクトリにマップされているため、File Statiionを使用してディレクトリを開き、admin.passwordファイルをダウンロードして、テキストエディターで開きます。
    ここに画像の説明を挿入
  4. 別の方法は、コンテナを入力してファイルを表示することです。操作は次のとおりです。コマンドを追加するコンテナを選択します。
    ここに画像の説明を挿入
  5. ポップアップする入力ボックスに「/ bin / bash」と入力すると、新しいbashプロセスがコンテナの名前空間の下に作成されます。このプロセスは、/ nexus-data / admin.passwordを含む同じ名前空間の下のすべてのファイルを表示してから、catコマンドを使用できます。ファイルの内容を確認するだけです。
    ここに画像の説明を挿入
  6. パスワードを取得したら、ページのネクサスにログインできます。アカウントはadminです。
    ここに画像の説明を挿入
  7. ログインに成功したら、プロンプトに従って新しいパスワードを設定します。
    ここに画像の説明を挿入
  8. 次はネクサスの通常の操作です。ここではこれ以上説明しません。ここで集中してみましょう。管理者権限を持つ新しいアカウントbolingcavalry作成し、パスワードを123456に設定します
    ここに画像の説明を挿入
  9. プライベートサーバーの中央倉庫のアドレスを取得します。
    ここに画像の説明を挿入
  10. この時点で、展開は成功しています。次に、プライベートサーバーが使いやすいかどうかを確認します。

Nexusサービスを確認するために2台のコンピューターを準備する

次の図は、プライベートサーバーを展開した後のアーキテクチャ図です
ここに画像の説明を挿入
。2台のコンピューター、コンピューターAとコンピューターBを準備して、新しく展開されたNexus3が中央倉庫のjarパッケージをキャッシュできることを確認します(仮想マシンを使用して2台のコンピューターを作成することもできます);

  1. コンピューターAとBの両方にJDK8とMaven3がインストールされています。
  2. コンピューターAとBの両方のmavenディレクトリーにあるconf / settings.xmlファイルは、次のように変更する必要があります。
  3. サーバーノードを見つけて、以下を追加します。
<server>
  <id>maven-central</id>
  <username>bolingcavalry</username>
  <password>123456</password>
</server>
  1. ミラーノードを見つけて、次のコンテンツを追加します。URLのコンテンツは、前に取得したmaven-centralウェアハウスのアドレスです。
<mirror>
  <id>maven-central</id>
  <mirrorOf>*</mirrorOf>
  <url>http://192.168.50.42:8081/repository/maven-central/</url>
</mirror>

コンピューターAでビルドプロジェクトをコンパイルします(遅いはずです)。

Aコンピューターでオープンソースプロジェクトspring-cloud-alibabaをコンパイルします。現在、Nexusにはjarパッケージがキャッシュされていないため、依存するすべてのjarを中央のウェアハウスからダウンロードする必要があるため、コンパイル速度が非常に遅くなります。試してみましょう。

  1. コンピューターAにログインして、spring-cloud-alibabaの2.1.1.RELEASEアーカイブパッケージをダウンロードします。
wget https://github.com/alibaba/spring-cloud-alibaba/archive/v2.1.1.RELEASE.tar.gz
  1. ダウンロードしたファイルを解凍します。
tar -zxvf v2.1.1.RELEASE.tar.gz
  1. 解凍したディレクトリを入力してください:
cd spring-cloud-alibaba-2.1.1.RELEASE/
  1. コンパイル:
mvn clean compile -U -DskipTests
  1. 下の赤いボックスに示すように、コンパイルは完了しています。このコンパイルには7分32秒かかります
    ここに画像の説明を挿入
  2. 以下に示すように、Nexusウェブページをご覧ください。現時点では、多くのjarファイルがキャッシュされています。
    ここに画像の説明を挿入

Bコンピューターでビルドプロジェクトをコンパイルします(すぐに実行する必要があります)

  1. Bコンピューターで同じ操作を行います。現時点では、コンパイルに必要なjarパッケージがNexusにキャッシュされています。コンパイルプロセスは大幅に高速化されています。最終的な操作結果は次の図のようになり、わずか1分8秒です。
    ここに画像の説明を挿入
  2. ネクサスサービスが占有しているリソースを見ると、大量のメモリが使用されています。メモリスティックが追加されていない場合は、独自の2Gメモリを使用するとSynology全体が下がると推定されます。コンテナはメモリを制限できますが、ネクサスプロセスの頻繁なGCも発生します。それはまだ非常にカードであるため、十分なメモリを確保する必要があります。これ
    ここに画像の説明を挿入
    までのところ、Synology DS218 +のMavenプライベートサーバーを展開する実際の戦闘は完了しています。将来、自宅のコードは安定したプライベートサーバーと見なすことができ、注意する必要はなく、いつでも利用できます。

私の公開番号に注目してください:プログラマーXinchen

ここに画像の説明を挿入

376の元の記事を公開 986を賞賛 128万ビュー

おすすめ

転載: blog.csdn.net/boling_cavalry/article/details/105458466