[ターン]ジェンキンス統合ドッカーは自動リリースをミラーリング

1.アイデア&プロセス

:ジェンキンスとしてジェンキンスが公開のような自動解除mavneドッカーは、全体的なプロセスやプロジェクトのアイデアをミラーリング統合
gitl -ジェンキンスは私に遠位のソースを持って
地元のジェンキンス-アプリケーションのパッケージ化を実現する
ミラーにパッケージ化ドッカーアプリケーションに- Dockerfileの
民間倉庫ドッカーにアップロードした画像を-シェルやドッカーJekins関連プラグイン
の削除古いドッカーコンテナ、新しいドッカーコンテナを実行します-シェルスクリプト

2.環境の準備します

ジェンキンスJavaの達人ドッカーのgitのgit-ジェンキンスウィジェット
設定ジェンキンス
フックがコード機能をプッシュオンにすることができた後に自動的にトリガGitのリポジトリには、そのような必要性などの機能は、この機能のgitリポジトリを回して構築ジェンキンスを実施しました。
新規プロジェクトを選択しmavanスタイルのアイテムまたはアイテムの自由なスタイル(ここで使用されるフリースタイル)

clipboard.png

3.設定ビルドトリガジェンキンス

clipboard.png

说明1:触发远程构建 (例如,使用脚本)
这个选项就是上面提到配合git仓库的钩子功能实现代码PUSH后Jenkins收到通知自动触发构建项目的动作
说明2:Poll SCM日程表
定时检查源码变更,如果有更新就克隆下最新code下来,然后执行构建动作

clipboard.png

5分钟检查一次该项目分支是否有变动,如果有就拉去最新code执行构建动作
注:构建触发器这里我们不做任何选择,这里只是介绍这两周功能,如有需要自行实现。

ログ出力の4建設

clipboard.png

地元の倉庫ドッキングウィンドウ表示

 

 

ミラーリングはすでに存在します

 

 

コンテナがすでに実行されています

clipboard.png

项目中的Dockerfile

ミラー内部にパッケージ化されたアプリケーションのためのDockerfieファイルを保存する必要がGitのリポジトリプロジェクト

5. Dockerfileは次のとおりです。

clipboard.png

過度のビルドプロセスの実行時間を避けるために、あまりにも長い間、唯一のことはジェンキンスパッケージ化されたアプリケーションファイルにあるDockerfileファイルがコンテナに追加されています。環境及び他の所望の動作は効率を向上させるように構成、ミラーに基づいて行われます。
注:エラーが報告されていない場合は、ハブを引っ張っドッカーに対応する画像を構築する過程にはJekinsバックが存在しない場合はJava6のFROMここでは、ミラーの存在がローカルリポジトリドッカー上で必要となります。

前記ベース画像Dockerfile

clipboard.png

Java6的镜像是从这里由来,添加了tomcat以及JAVA环境变量
构建Docker镜像这里只做一下简单说明

我的dockerfile文件如下:

 FROMは、ミラーに参加する別のアプリケーションを使用してパッケージベース画像、各時間であり、その後、新しいイメージにパッケージ。

 

 

 

 

ジェンキンスビルド操作後
Jekinsは、ネットワークの外部にこれを行うには、関連するドッカープラグインを使用しますが、理由は壁のことができますが、インストールすることは困難である。この用途はシェル方式を実行し、メンテナンスを投稿する比較的単純で簡単です。

 

 #ドッカーは、コマンドが実行されるサーバーにログオン

SSH [email protected] IP ADDR 
imagesid = \ $(ドッカー画像| はgrep -i解像度| awkの ' {\ $プリント} 3。' 
#1 imagesid空でない場合は、画像を削除し、コンテナ、すべての新しいイメージに再パッケージ化がミラーリングすることを確実にするために
IFを [-z \ その後、$ \ imagesid」] 
    エコー \ $ imagesid \は\ NULLである」
他の
    名前 | = \ $(ドッカーロイヤリティーフリーのgrep -i解像度| awkの " {\ $}印刷1。' 
    タグ = \ $(ドッカー画像| はgrep -i解像度| awkの ' {\ 2 $プリント} "
    名札 = \ $名:\ $タグ
     エコー\ $名札
    ContainerIDの = \ $(ドッカーPS | grepを \ $名札| awkの ' {\ $を印刷します1。} ' エコー \ " LRX \ $ ContainerIDの\" 
    ドッカーRM \ $ ContainerIDの- F 
    ドッキングウィンドウRMI \ $ imagesid - F
 Fi回線
、現在の実行ディレクトリパスdockerfileファイルから#プッシュ、dockerfileは、ドッキングウィンドウのサーバー上になければならない
のpushd / dockerdir
 PWD 
#新しい画像を生成し、画像タグ付けにするために、ファイルdockerfile実行
ドッカビルド -解像度T:1.0  
現在の実行ディレクトリに#ジャンプバック 
POPDの
PWD 
#ドッキングウィンドウのオープンコンテナ
コンテナRUNドッキングウィンドウは、 -uルートを-d -h app29 --network --name JARホストは--capのAdd-DPI = NET_ADMIN --privileged:1.0 ;
 "

 

注:ここではそれ以外の場合は、起動に失敗し、容器はコンテナ名-nameを指定するために始めたときに、古いコンテナを殺し、コンテナの名前で一致しているのgrep古いコンテナを削除し、再起動してすることです。

ページビューを確認してください7.

 

 

Iドッカーアプリケーションは、インデックス・ページ、コンテナ成功した訪問の鏡像です。

8.拡張します

- マルチノードのアップグレード

ただビルド操作、ansiblesによる内部民間倉庫、マルチノード展開にアップロードされた画像を行い、建物の複数のコンパイルせずに、マルチポイントの導入で必要とされるこれらは、機械ドッカーのためだけの単一ノード展開パッケージです。

- 展開ドッカークラスタ環境

使用kubernetsクラスタ管理ツールの展開(1.2版追加)は、(デプロイアプリケーションに相当)ローリング・アップグレードのコンテナを実装するファイル

 

上記から転送https://segmentfault.com/a/1190000007837054

おすすめ

転載: www.cnblogs.com/yanwuliu/p/12661840.html