1.アイデア&プロセス
:ジェンキンスとしてジェンキンスが公開のような自動解除mavneドッカーは、全体的なプロセスやプロジェクトのアイデアをミラーリング統合
gitl -ジェンキンスは私に遠位のソースを持って
地元のジェンキンス-アプリケーションのパッケージ化を実現する
ミラーにパッケージ化ドッカーアプリケーションに- Dockerfileの
民間倉庫ドッカーにアップロードした画像を-シェルやドッカーJekins関連プラグイン
の削除古いドッカーコンテナ、新しいドッカーコンテナを実行します-シェルスクリプト
2.環境の準備します
ジェンキンスJavaの達人ドッカーのgitのgit-ジェンキンスウィジェット
設定ジェンキンス
フックがコード機能をプッシュオンにすることができた後に自動的にトリガGitのリポジトリには、そのような必要性などの機能は、この機能のgitリポジトリを回して構築ジェンキンスを実施しました。
新規プロジェクトを選択しmavanスタイルのアイテムまたはアイテムの自由なスタイル(ここで使用されるフリースタイル)
3.設定ビルドトリガジェンキンス
说明1:触发远程构建 (例如,使用脚本)
这个选项就是上面提到配合git仓库的钩子功能实现代码PUSH后Jenkins收到通知自动触发构建项目的动作
说明2:Poll SCM日程表
定时检查源码变更,如果有更新就克隆下最新code下来,然后执行构建动作
每5分钟检查一次该项目分支是否有变动,如果有就拉去最新code执行构建动作
注:构建触发器这里我们不做任何选择,这里只是介绍这两周功能,如有需要自行实现。
ログ出力の4建設
地元の倉庫ドッキングウィンドウ表示
ミラーリングはすでに存在します
コンテナがすでに実行されています
项目中的Dockerfile
ミラー内部にパッケージ化されたアプリケーションのためのDockerfieファイルを保存する必要がGitのリポジトリプロジェクト
5. Dockerfileは次のとおりです。
過度のビルドプロセスの実行時間を避けるために、あまりにも長い間、唯一のことはジェンキンスパッケージ化されたアプリケーションファイルにあるDockerfileファイルがコンテナに追加されています。環境及び他の所望の動作は効率を向上させるように構成、ミラーに基づいて行われます。
注:エラーが報告されていない場合は、ハブを引っ張っドッカーに対応する画像を構築する過程にはJekinsバックが存在しない場合はJava6のFROMここでは、ミラーの存在がローカルリポジトリドッカー上で必要となります。
前記ベース画像Dockerfile
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版追加)は、(デプロイアプリケーションに相当)ローリング・アップグレードのコンテナを実装するファイル