プロジェクト開発では、開発やテストのためにローカルで環境を設定する必要があることがよくあります。ご存知のように、環境の設定、ソフトウェアのインストール、ミドルウェアのインストールは非常に面倒な作業です。一部のソフトウェアのインストールは、他の環境のインストールに依存する必要がある場合があります。たとえば、rabbitmq をインストールするには、まず Erlang 言語環境が必要です。セット全体をインストールすると、時間が無駄になるだけでなく、さまざまな問題が発生し、開発の進行に重大な影響を及ぼします。開発者にとって人生は短いので、開発効率を向上させるためにあらゆる手段を講じてください。 Docker の登場は、テクノロジー コミュニティにとって間違いなく画期的な出来事です。Docker は、豊富なアプリケーション イメージ リポジトリ、使いやすさ、移植性により、IT プロフェッショナルに深く愛されています。 Docker を使用して対応するアプリケーションをデプロイまたはインストールする場合、インストール プロセス、詳細、依存関係に多くの時間を費やす必要はなく、すぐに使用できます。この記事では、Jenkins の構築を例に、イメージのプル、コンテナの実行、ファイルのマウント、操作の追跡、コンテナのシャットダウンなど、Docker の基本的な操作プロセスを説明します。Docker を使い始めたばかりの技術愛好家にとって役立つことを願っています。 Docker の基本概念Docker はオープンソースのアプリケーション コンテナ エンジンであり、開発者はこれを使用してアプリケーションと依存関係をポータブル コンテナにパッケージ化し、一般的な Linux マシンに公開することができます。実際、Docker の最も典型的な図は「背中にコンテナを載せたイルカ」であり、これは Docker エンジンとコンテナの関係を完全に示しています。
Docker インストール プロセス (Centos6.9)カーネルのアップグレードCentos6.9では、Dockerをインストールする前にカーネルバージョンをアップグレードする必要があります。アップグレードのプロセスは次のとおりです。 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm 2.yumのインストール yum --enablerepo=elrepo-kernel -y カーネル-ltをインストールします 3. ブートファイルの変更( vim /etc/grub.conf デフォルトを 0 に設定、デフォルト = 0 4. 再起動 docker-ioをインストールする1. EPELソースをインストールする yum でインストール http://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm 2. docker-ioをインストールする yum -y docker-io をインストールします 3. dockerサービスを起動する サービスdocker開始 Docker ベースの Jenkins インストールプルアプリケーションコンテナ/インスタンスを実行する前に、docker hub リポジトリから対応するイメージをプルする必要があります。jenkins イメージの紹介については、公式 Web サイトを確認してください。そこには、インストール コマンド、構成情報、ファイル ディレクトリの詳細な手順が記載されています。 コンテナの実行コンテナ/インスタンスを実行するときは、ローカル ホスト経由でアクセスできるように、ローカル ポートを Docker コンテナにマッピングすることを考慮する必要があります。コンテナ自体はファイルを保持しないため、Docker ではコンテナ内でファイル関連の書き込み操作を実行することは推奨されません。コンテナは「コンテナ」としてのみ使用されます。コンテナ アプリケーションの動作中に、MySQL データベース ファイル、Jenkins プラグイン、構成ファイルなどの重要なデータを大量に保存または構成する必要がある場合は、コンテナ ファイルをローカルにマウントすること、つまりボリューム マッピングをお勧めします。 docker run -p 8080:8080 -p 50000:50000 -v /usr/local/docker_volume/jenkins:/var/jenkins_home -v /usr/local/apps/maven-3.3.9:/var/maven_home -v /usr/local/apps/maven-3.3.9/repo:/usr/local/apps/maven-3.3.9/repo --name my_jenkins -d jenkins ここで、-p はポート マッピング、つまりローカル マシン上のポートをコンテナー上のポートにマッピングすることを意味します。 上記のコマンドを実行すると、コンテナ ID がウィンドウに表示されます。実行中のコンテナのステータスと関連情報は アプリケーションログの追跡コンテナの印刷ログを追跡するには、 開いた容器を閉じるシャットダウン: tomcat アカウント設定この例では、Mavenによってコンパイルされたwarがリモートのtomcatにデプロイされるため、tomcatでデプロイメント権限を設定し、 <ロール ロール名="tomcat"/> <ロール ロール名="管理者"/> <ロール ロール名="admin-gui"/> <ロール ロール名="マネージャー"/> <role rolename="マネージャー GUI"/> <role rolename="マネージャースクリプト"/> <ロール ロール名="マネージャー-jmx"/> <role rolename="マネージャーステータス"/> <ユーザー ユーザー名="admin" パスワード="admin" 役割="admin、マネージャー、tomcat、マネージャー GUI、マネージャー スクリプト、マネージャー JMX、マネージャー ステータス"/> <ユーザー ユーザー名="root" パスワード="admin" 役割="admin、manager、tomcat、manager-gui、manager-script、manager-jmx、manager-status、admin-gui"/> Jenkins を設定して WAR アプリケーションをビルドおよびデプロイするこの時点で、 JDK、Maven、その他のパラメータを設定する以下に示すように、「システム設定 -> グローバルツール構成」にJDKのインストールを追加します。 「システム設定 -> プラグインの管理 -> オプションのプラグイン」で、WAR プログラムをデプロイするための「コンテナ プラグインへのデプロイ」プラグインをインストールします。 ビルドとデプロイのための新しいタスクを作成するSVNソースコードアドレスとTomcatデプロイメントアドレスを追加する Tomcatの展開構成、Tomcatにログインするためのアカウントを構成する ssh スクリプトを使用して、指定された Tomcat に Maven プロジェクトをデプロイします。上記の方法を使用して Tomcat の組み込みデプロイメントでデプロイメントを実装すると、サーバーのパフォーマンスが大幅に消費され、メモリ オーバーフローなどの問題が発生してデプロイメントが失敗することがよくあります。 ssh スクリプトの展開方法ははるかに便利で高速であり、それほど多くのメモリを消費しません。 SSH経由の公開プラグインを設定する「システム設定 -> 管理プラグイン -> オプションプラグイン」で (Publish Over SSH) プラグインをインストールし、「システム管理 -> システム設定 -> Publish over SSH」で公開する Linux サーバーのログイン情報を設定します。設定内容と具体的な意味は下図の通りです。設定が完了したら、[設定のテスト] ボタンをクリックして、接続が確立されているかどうかをテストします。「成功」と表示されれば、設定は成功です。 デプロイメントSSHスクリプトを書く次のシェル スクリプト #!/bin/bash # ファイル: ff=unix を設定する #定義済み JAVA_HOME=/usr/local/java をエクスポートします。 #Tomcat のデプロイ場所TOMCAT_HOME="/home/admin/data/tomcat-jenkins" # ログイン後のサーバーユーザーディレクトリは、上の図で構成されているリモートディレクトリ設定と同じです。LOGIN_HOME="/home/admin/data" TOMCAT_ポート=10092 プロジェクト="$1" #パラメータ検証 [ $# -lt 1 ]の場合; echo "次のように使用する必要があります: ./deploy.sh <プロジェクト名> [tomcat ポート] [tomcat ホーム ディレクトリ]" 出口 フィ [ "$2" != "" ] の場合; TOMCAT_PORT=$2 フィ [ "$3" != "" ] の場合; TOMCAT_HOME="$3" フィ #Tomcatをシャットダウンする #"$TOMCAT_HOME"/bin/shutdown.sh #echo "Tomcat シャットダウン" #Tomcatプロセスをチェック #tomcat_pid=`/usr/sbin/lsof -n -P -t -i :$TOMCAT_PORT` tomcat_pid=`ps -ef | grep $TOMCAT_HOME | grep -v 'grep\|tail\|more\|bash\|less'| awk '{print $2}'` echo "現在:" $tomcat_pid [ -n "$tomcat_pid" ] の間 する 睡眠5 tomcat_pid=`ps -ef | grep $TOMCAT_HOME | grep -v 'grep\|tail\|more\|bash\|less'| awk '{print $2}'` echo "Tomcat PID をスキャン:" $tomcat_pid [ -n "$tomcat_pid" ]の場合; echo "Tomcat を終了:" $tomcat_pid 強制終了 -9 $tomcat_pid フィ 終わり #プロジェクトを公開 echo "スキャンなし tomcat pid、$PROJECT 公開" rm -rf "$TOMCAT_HOME"/webapps/$PROJECT cp "$LOGIN_HOME"/war/$PROJECT.war "$TOMCAT_HOME"/webapps/$PROJECT.war #bakプロジェクト #BAK_DIR=/home/web_as/war/bak/$PROJECT/`日付 +%Y%m%d` #mkdir -p "$BAK_DIR" #cp "$TOMCAT_HOME"/webapps/$PROJECT.war "$BAK_DIR"/"$PROJECT"_`date +%H%M%S`.war #tmp を削除 rm -rf "$LOGIN_HOME"/war/$PROJECT.war #Tomcatを起動 "$TOMCAT_HOME"/bin/startup.sh echo "tomcat が起動しています。$PROJECT コンソール URL にアクセスしてみてください" プロジェクトビルド構成以下のように設定を保存したら、Maven プロジェクトをビルドできます。Jenkins はコンパイルされた war プロジェクトを これで、docker を使用して Jenkins + Maven のコード ビルドおよびデプロイメント プラットフォームを構築する方法についての記事は終了です。docker を使用して Jenkins + Maven を構築することに関するその他の関連コンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: http-proxy-middlewareを使用してNodeでプロキシクロスドメインを実装する方法と手順
1. テスト環境名前バージョンセント7.6ドッカー18.09.06 2. オンラインインストールここ...
1. いつsetUpを実行するかvue3 ではメソッドを正常に使用できるようになったことは誰もが知っ...
禅コーディングテキストエディタプラグインです。 Zen Coding を使用するテキスト エディター...
目次序文バブルソート基本アルゴリズム2 番目の書き方は、基本的なアルゴリズムに基づいて改良されていま...
MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...
Apache では構成ファイルで Web ページまたは Web サイトの書き換えを簡単に設定できる...
ファイルの切り替えは Linux でよく行われる操作です。Linux を初めて学ぶときに最初に触れる...
Linux オペレーティング システムは過去 20 年間にわたってデータ センターに革命をもたらし...
目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...
nginx リバース プロキシを設定する場合、location と proxy_pass のスラッシ...
以前、カスタム関数を使用して MySQL でツリー構造を再帰的にクエリする方法についての記事を書きま...
水平方向では、テーブルの配置を左、中央、右に設定できます。基本的な構文<テーブル配置=&quo...
1. Ansibleのプレイブックを使用してhttpdを自動的にインストールする1) まず、Ansi...
数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...
ホーム ページに戻るための支払いカウントダウン ケースの概要: シンプルな js 構文、getEle...