DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

DockerでJenkinsをインストールし、初期プラグインのインストール失敗の問題を解決する

Jenkins をインストールした後、プラグインの初期ダウンロードが常に失敗し、インストールが失敗します。何度か再試行しても、プラグインのインストールで止まってしまいます。

ここでは、Docker で Jenkins をインストールし、初期プラグインのインストールが失敗する問題を解決する方法の記録を示します。

プラグインのインストールに失敗するということは、実際には公式の Jenkins イメージが取得され、プラグインが最初にインストールされるときに外国の Web サイトから取得されるため、インストールが非常に遅くなったり、インストールが失敗したりすることを意味します。最善の解決策は、Jenkins Chinese コミュニティによって提供される Jenkins イメージを取得することです。 Jenkins 中国語公式サイト: https://www.jenkins.io/zh/

インストール手順 イメージを取得する

docker pull jenkinszh/jenkins-zh:latest

Docker 公式イメージリポジトリ: https://hub.docker.com/

Jenkinsの中国語ミラーはここ

Jenkinsコンテナのマウントディレクトリを設定する

Jenkins コンテナが起動すると、インストール構成ファイルが生成されます。これらのファイルの生成アドレスを Linux サーバー上のディレクトリに変更する必要があります。

目的: 将来構成が変更されたときに、構成を見つけやすくするため。

Jenkinsビルドディレクトリを作成します。mkdir /home/jenkins_home

ディレクトリ認証 chmod 777/home/jenkins_home システムが認証されていない場合、起動後にファイルを生成できません。

起動コマンド

docker run -d -p 8085:8080 -p 50000:50000 --name myjenkins -v /home/jenkins_home/:/var/jenkins_home jenkinszh/jenkins-zh:latest

コマンドの説明:

コンテナを実行する
-d バックグラウンドで実行
-p Linux サーバーポートと Docker コンテナポートのマッピング
--name カスタムコンテナエイリアス
-v LinuxサーバーディレクトリとDockerコンテナディレクトリの最後の名前の後に、マウント時に取得したイメージ名とバージョンが続きます。

注: 8085 はアクセス ポートであり、使用されていない任意のポートを使用できます。 8080は変更できません

-p 50000:50000は変更できません。

/home/jenkins_home/ ローカルビルドディレクトリはカスタマイズ可能で、前の手順で作成および承認されたディレクトリと一致します。

/var/jenkins_homeDocker コンテナ ディレクトリ。変更できません。

アクセス

サーバー IP + カスタム ポートの例: 192.168.0.200:8085

初期パスワード

docker ps 現在実行中のコンテナのIDを取得する

Docker ログコンテナ ID

ログログで確認できます。

プラグインのインストール

中国のコミュニティが提供する Jenkins イメージは設定を必要とせず、直接インストールでき、速度も非常に高速です。

付録 - 公式イメージへのプラグインのインストール失敗の分析

上記のJenkinsによってマウントされたディレクトリを例に挙げます

jenkins_home ディレクトリの hudson.model.UpdateCenter.xml ファイルでは、プラグインがプルするための構成アドレスが定義されています。デフォルトのアドレスには直接アクセスできます。https://www.google.com/ に接続していることがわかります。ファイアウォールのため、このアドレスには常にアクセスできませんでした。

/jenkins_home/updates ディレクトリ内の default.json ファイルの内容は、hudson.model.UpdateCenter.xml で定義されたプラグインによって取得された構成アドレスの内容です。他のブログなどを通じて default.json ファイルの内容を変更しても、再度起動するとすぐに復元されるため、どのように変更しても有効になりません

Jenkins中国コミュニティが提供するミラーが処理され、プラグインプルの設定アドレスが国内ミラーアドレスに変更されたため、プラグインのダウンロードが非常に高速になりました。

Jenkins の中国コミュニティによるプラグインのプルに関する説明:

https://community.jenkins-zh.cn/t/jenkins/26

https://jenkins-zh.cn/wechat/articles/2019/11/2019-11-11-update-center-mirror-announcement/

さらに詳しく知るために提案する

これで、Jenkins を Docker でインストールし、プラグインの初期インストールが失敗する問題を解決する方法についての記事は終わりです。Jenkins を Docker でインストールすることに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JenkinsのDockerインストールの完全なプロセスとガイドのステップ
  • Jenkins のインストールとプラグイン管理の設定に関する入門チュートリアル
  • Jenkins環境のセットアップのダウンロードとインストールのプロセス
  • JenkinsのLinuxインストール手順と各種問題解決(ページアクセス初期化パスワード)
  • CentOS 8にJenkinsをインストールする方法
  • Ubuntu 16.04にJenkinsをインストールするための詳細な手順
  • Jenkins インストールにおけるタイムゾーン問題の分析と解決

<<:  JSはマップを使用してdouble配列を統合します

>>:  Linux での MySQL 8.0.11 のインストールに関するチュートリアル

推薦する

この記事ではSQL CASE WHENの使い方を詳しく説明します

目次シンプルな CASEWHEN 関数:これは、CASEWHEN 条件式関数を使用するのと同じです。...

gbk utf8 GBK と UTF-8 ウェブページエンコーディングを正しく理解して使用する方法

Web ページ エンコーディングは英語では web page encoding と翻訳され、Web ...

Zabbix Agent2を使用してOracleデータベースを監視する方法

概要zabbix バージョン 5.0 以降では、zabbix-agent2 という新しい機能が追加さ...

Ubuntuデュアルシステムが起動時に停止する問題の解決方法の詳細な説明

起動時に Ubuntu デュアル システムが停止する問題の解決方法 (Ubuntu 16.04 およ...

mysql5.7.18 のインストール時にエントリが見つからない問題の解決方法

mysql5.7.18のインストール時に次の問題が発生しました: プログラム入力ポイントfesetr...

Nginx サービスを使用してサブドメイン環境を構築し、2D マップの読み込みパフォーマンスを向上させる方法を説明します。

1. 背景最近、友人が大規模なマップの読み込みが遅いという問題に遭遇しました。iServer のパ...

フローティングメニューを実装するjQueryプラグイン

毎日jQueryプラグインを学ぶ - フローティングメニュー、参考までに、具体的な内容は次のとおりで...

HTML/CSSにおける記号論の詳細な説明

この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...

Linuxは数字当てゲームのソースコードを実装する

シンプルな Linux 推測ゲームのソースコードゲームのルール:数字当てゲームは通常 2 人でプレイ...

ElementUIはel-formフォームリセット機能ボタンを実装します

目次ビジネスシナリオ:効果のデモンストレーション:ビジネスシナリオ: el-form を使用する場合...

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

jsはreduceメソッドを使用してコードをよりエレガントにします

序文実際のプロジェクトでは、最も一般的な処理は計算とループロジックである可能性があります。配列でre...

MySQL が重複データを挿入するのを防ぐ 3 つの方法

新しいテーブルを作成する テーブル「人」を作成します( `id` int NOT NULL COMM...

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

MySQL での find_in_set() 関数の使用に関する詳細な説明

まず、例を見てみましょう。記事テーブルにはタイプフィールドがあり、1 見出し、2 おすすめ、3 ホッ...