問題タブ [jenkins-docker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
13447 参照

jenkins - 複数のステージ間で Jenkins のエージェント (docker コンテナー) を再利用する

複数のステージを持つパイプラインがあり、すべてではなく「n」個のステージ間でドッカーコンテナーを再利用したい:

0 投票する
1 に答える
2035 参照

jenkins - Jenkins 共有ライブラリで Docker を使用してビルドする

hereのように、Jenkins パイプラインを (共有) オブジェクトとして定義しようとしています。しかし、docker コンテナー内でビルド アクションを実行する機能を追加したいと考えています。

私のJenkinsfile作品は次のようになります。

ご覧のとおり、dockerインスタンスは Jenkinsfile で作成され、ビルダー オブジェクトに渡されてビルダーが作成されます。これまでのところ、動作します。ステージはinsideコンテナーで実行されます。

次に、Docker インスタンスの作成を Pipeline クラスに転送しますSconsPipeline.groovy。私はそれをやろうとしました:

しかし、ジェンキンスは正しいオブジェクトを見つけることができません:

私の質問は、共有ライブラリのオブジェクト コード内でdocker-workflowを使用する方法です。

0 投票する
0 に答える
123 参照

jenkins - docker コンテナーで Jenkins マスターの ssh 公開鍵を取得する方法

Jenkins の公式ガイドに従い、マスターは Docker コンテナーとして実行されています。現在、この Jenkins マスターのスレーブとして別のマシンをセットアップしようとしていますが、マスターの公開 SSH キーを新しいスレーブ マシンに手動でコピーする必要があると思います。これらのキーにアクセスするにはどうすればよいですか? 何度も破棄して作成できる Jenkins コンテナが問題ではないでしょうか。ジェンキンス データ用の永続的なボリューム コンテナーがありますが、キーがある場所ではないと思います。

0 投票する
0 に答える
866 参照

jenkins - docker-container を jenkins ビルド エージェントとして使用しているときに、ワークスペース内のビルド ディレクトリを保持するにはどうすればよいですか?

Jenkins ビルド エージェントとしてdocker コンテナーを使用しています。すべてのビルド エージェント、jenkins マスター ノードは、同じホスト上で実行される Docker コンテナーです。(異なる VM はありません)

以下は、Angular アプリを構築するために使用している Docker Agent テンプレートです。

ドッカー-1

ドッカー-2

  1. これらは、sshd を使用する Docker エージェントです。公開鍵は、env 変数を使用して挿入されます。
  2. build Agent Docker イメージには、npm と angular-cli がインストールされています。

Jenkinsファイルは以下の通りです。Jenkins ファイルを変更できません。したがって、上記のビルド エージェントは、jenkinsfile でノードとしてラベル付けされています。

  1. ビルドが正常に実行されます。アーティファクトを取得できます

私がやっている ことは、docker テンプレート構成で .npm と node_modules をマウントします。(-v)

私が欲しいもの

より速いビルド。Docker ボリューム マウント オプションを使用して、このワークスペース ディレクトリを保持したい

そのため、node_modules は永続的であり、ビルドが高速になります。そのディレクトリ パスを取得して docker エージェント テンプレートに入れるにはどうすればよいですか?