背景テスト環境では、docker プラグインを統合した Jenkins を使用し、テスト環境のワンクリック デプロイメント サービスを実現しています。まず、Jenkins に docker build and publish プラグインをインストールしましたが、ジョブの動作に一連の問題が発生しました。 質問1Docker 実行でエラーが報告され、ビルド ステップ「Docker ビルドと公開」でビルドが失敗としてマークされました。この文につながる問題は多数あります。より詳細なエラー情報: Jenkins コンテナーは docker 操作をサポートしていませんか? 問題の分析: Jenkins は docker を使用してデプロイされているため、Jenkins コンテナ内に docker 関連の操作コマンドがないため、実行が失敗します。 解決策: Docker コマンドラインを使用する前に、ホストの Docker 環境を Jenkins コンテナにマップする必要があります。 docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts もう一度実行しても、結果はまだ間違っており、解決策はありません。 エラー 2bin ディレクトリに実行可能なコマンドがないというメッセージが表示されますか? 分析: インストールした環境のコマンドラインをLinux環境で実行したい場合は、環境変数/usr/binを追加する必要があることがわかっています。 解決策: ホストのdocker実行可能コマンドのマッピングを続行する docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /var/jenkins_home:/var/jenkins_home -u 0 -d jenkins/jenkins:lts ヒント: which コマンドは、コマンドやファイルを検索する whereis コマンドに似ています。前者はシステム環境変数内のコマンドをチェックし (最初の結果を返します)、後者はプログラム名に関連するパスを返します (一致するすべての結果を返します)。 エラー 3関連する依存関係が見つかりません: 共有ライブラリのロード中にエラーが発生しました: libltdl.so.7: 共有オブジェクト ファイルを開けません: そのようなファイルはありません or/libltdl.so.7 分析: Jenkins コンテナ内では、コンテナがホストと共有されていないため、ライブラリはホスト上で見つかります: cd usr/lib64/ 解決策: ホスト上でlibltdl.so.7依存ライブラリを見つけてコンテナをマウントする docker run --name myjenkins -p 8123:8080 -p 50000:50000 -v /run/docker.sock:/var/run/docker.sock -v $(which docker):/usr/bin/docker -v /usr/lib64/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7 -v /var/jenkins_home:/var/jenkins_home -v /var/data/shell:/var/data/shell -u 0 -d jenkins/jenkins:lts エラー4基本認証資格情報なし 認証なし 原因の分析: このプラグインは、jenkins コンテナ内で docker コマンドを使用します。イメージのビルドにはエラーはありません。コンテナ内のイメージ リポジトリにプッシュする必要がある場合は、認証が必要です。 解決策: Jenkins ジョブに認証行を直接追加します。docker login --username=xxxx --password=xxxx nexus.xxxx.com ヒント: コマンドを実行すると、現在のディレクトリに .credentials が生成され、Nexus イメージ リポジトリにログインするためのアカウントとパスワード情報が記録されます。 要約するこの時点で、前の手順は完了しており、jenkins コンテナ内で docker コマンドを使用できます。shh プラグインを使用してコンテナからホストにジャンプし、ビルドおよびプッシュ操作コマンドを実行する必要はありません。コンテナを起動するには、スクリプトを実行するだけです。 Docker コンテナ化では、ホストとコンテナ間でマッピングされるものはすべて同じです。つまり、コンテナ内のホストにマウントされたファイルが変更されても、コンテナ内でマウントされたホスト ファイルが変更されても、両方が同時に変更されます。 Jenkins 統合 Docker プラグインの問題を解決するいくつかの方法についての記事はこれで終わりです。Jenkins 統合 Docker プラグインの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: 9999px に別れを告げる新しい CSS 画像置換テクニック (背景表示と画面外へのテキストの移動)
目次構造継承(callで実装)プロトタイプチェーン継承(プロトタイプチェーンの助けを借りて実装)複合...
目次序文準備行く!文章プロセスを開始するメインループまとめ要約する序文準備皆さんは、こんなことを考え...
目次1. 基本的な使い方とロジック2. 特徴3. エラーオブジェクト4. キャッチアンドスロー戦略の...
ストレステストにログインする際には、多くの異なるユーザーが必要となり、データベースに新しいデータを追...
<テンプレート> <div id="ルート"> <...
この記事では、宝くじマシンの効果を実現するためのJavaScriptの具体的なコードを参考までに共有...
仮想化1. 環境セントオス7.3 selinuxとファイアウォールを無効にする2. 仮想化環境の構成...
目次ブートオプションコマンドラインパラメータの長い形式と短い形式設定ファイル構成グループシステム変数...
ボックス モデルは、要素ボックスの幅と高さ、パディング、境界線、余白のサイズを指定します。境界線の内...
長い間ブログを書いていませんでした。先週、プロジェクトをテストしたところ、いくつかのバグが見つかりま...
MySQL 開発チームは、2019 年 10 月 14 日に MySQL 8.0.18 GA バージ...
トリガー メソッドを使用できます。JavaScript にはネイティブのトリガー関数はありません。自...
2つの小さな問題ですが、長い間私を悩ませていました。最初の質問テキストエリアの左側のテキストは常にテ...
ソフトウェア パッケージが存在しない場合は、インストールされているソフトウェアのソフトウェア ソース...
1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...