序文:数日間の勉強と私自身の理解を経て、Docker+Jenkins の自動デプロイに関するチュートリアルをまとめました。不足している点がありましたら、さらにアドバイスをお願いします。ありがとうございます! Docker の利点:
Jenkins を使用する理由:
1. Dockerをインストールする
1. uname -rコマンドで現在のカーネルバージョンを確認します。 uname -r は、 2. root権限でCentOSにログインします。 yum パッケージが最新バージョンに更新されていることを確認してください。 yum -y アップデート 3. 古いバージョンをアンインストールします(古いバージョンがインストールされている場合) yum 削除 docker docker-common docker-selinux docker-engine 4. 必要なパッケージをインストールします。yum-util は yum-config-manager 機能を提供します。他の 2 つは devicemapper ドライバーの依存関係です。 yum インストール -y yum-utils デバイスマッパー永続データ lvm2 5. yumソースを設定する yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 6. すべてのリポジトリのすべてのDockerバージョンを表示し、インストールする特定のバージョンを選択できます。 yum list docker-ce --showduplicates | sort -r 7. Dockerをインストールする sudo yum install -y docker-ce #リポジトリでは安定リポジトリのみがデフォルトで有効になっているため、最新の安定バージョン 18.03.1 がここにインストールされます 8. 起動してブートに追加 systemctl start docker //dockerを起動する systemctl enable docker //起動時に開始するように設定する 9. インストールが成功したかどうかを確認します (クライアントとサービス部分が存在する場合、Docker のインストールと起動が成功したことを示します) docker バージョン 2. DockerでJenkinsをインストールする1. リポジトリでJenkinsイメージを検索するdocker 検索 ジェンキンス
2. Jenkinsイメージをローカルイメージにプルするdocker pull ジェンキンス/ジェンキンス ここでプルされたバージョンは jenkins/jenkins であることに注意してください。これは、以前の jenkins バージョンが 2.60 のみであったため、jenkins プラグインのインストールが失敗したためです。プル時にバージョンを指定できます。たとえば、docker pull java:8 は、プルされた java バージョンが 8 であることを意味します。バージョンを指定しない場合は、デフォルトで最新バージョンになります。 3. Jenkinsコンテナを起動するdocker run --name myjenkins -d -p 8081:8080 -p 8085:8085 jenkins/jenkins –name myjenkinsはコンテナ名をmyjenkinsとして指定します
3. Jenkinsへのログインの初期化操作1. Jenkins インターフェイスにアクセスします。たとえば、仮想マシンの IP が 192.168.199.188 の場合、192.168.199.188:8081 と入力して Enter キーを押すと、次のインターフェイスが表示されます。 Jenkinsがインストールされているコンテナに入る docker exec -it myjenkins bash // 指定されたコンテナに入ります。myjenkins はコンテナを起動したときにコンテナに指定した名前を表します。cat /var/jenkins_home/secrets/initialAdminPassword` // パスワードを表示し、パスワードをコピーしてテキスト ボックスに貼り付けます。 操作図: 2. プラグインをインストールします。ここでは、Jenkins が推奨するプラグインをインストールします。 推奨プラグインをインストールするにはクリックしてください: 3. インストールが進行中です。しばらくお待ちください。インストールが完了したら、[続行] をクリックします。 4. 管理者ユーザーを作成するか、管理者アカウントを直接使用して続行します。 5. インスタンス構成が直接保存されます。 6. Jenkins の使用を開始します。 7. Jenkins ホームページにアクセスします。 4. グローバルツール構成(構成環境)システム管理 - グローバルツール構成をクリックします 1. JDK を構成する: 自動インストールをキャンセルし (JDK 環境は通常コンテナ内にインストールされます)、docker コンテナに入り、 2. Mavenの設定: 名前を指定して自動的にインストールし、「保存」をクリックします。 5. Mavenプラグインをインストールするシステム管理 – プラグイン管理をクリックします6. 自動展開を完了するための新しいタスクを作成する1.ホームページに戻り、「新しいタスク」をクリックしてMavenプロジェクトをビルドします。 2. [OK] をクリックしてホームページに戻ります。SpringBoot_AutoTest1 という追加のタスクが見つかりました (上記のタスクは前のものなので無視してください) 3. プロジェクト名SpringBoot_AutoTest1をクリック --> [構成]をクリック 3.1 ソース コード管理 (Git リポジトリ アドレスを設定すると、Jenkins がリモート リポジトリからコードをプルします): 3.2 ビルド構成 (Jenkin はコードを取得した後、パッケージ化コマンドを自動的に実行します): 3.3 シェル スクリプトを構成します (Jenkins のパッケージ化が完了すると、シェル スクリプトが自動的に実行され、プロジェクトが開始され、自動デプロイが実現されます)。その後、保存します。 添付のシェルスクリプト: #!/bin/bash # #!/bin/bash は、このスクリプトが /bin/bash を使用して解釈および実行することを意味します。このうち、#! は特別なインジケータであり、その後にこのスクリプトを解釈するシェル パスが続きます。 Bash はシェルの 1 つのタイプにすぎません。sh、csh、ksh、tcsh など、他にも多くのシェルがあります。 # #!/bin/bash は最初の行にのみ配置できます。その後に #! がある場合は、コメントとしてのみ扱われます。 #サービス名 SERVER_NAME = SpringBoot_AutotTest #ソース jar パス。mm パッケージ化が完了したら、ターゲット ディレクトリ内の jar パッケージ名を war パッケージとして選択し、war パッケージを Tomcat に移動することもできます。 JAR_NAME=jekins-0.0.1-SNAPSHOT #ターゲット パッケージは、jar パッケージのディレクトリを生成します。JAR_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target #特定のパッケージの場所に基づいて、プロジェクトを一度ビルドし、ログを通じてパッケージ化されたディレクトリを表示できます。#パッケージ化後、iar パッケージを jar パッケージが実行されるディレクトリに移動します。JAR_WORK_PATH=/var/jenkins_home/workspace/SpringBoot_AutotTest/target echo "クエリプロセスID-->$SERVER_NAME" PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'` echo "プロセス ID を取得: $PID" echo "プロセスを終了" $PIDのID する -9 $id を殺す echo "$id を強制終了しました" 終わり echo "終了プロセスが完了しました" #jarパッケージを実行ディレクトリにコピーします_ echo"jar パッケージを実行ディレクトリにコピーします:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH" cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH echo "jar パッケージの完全なコピー" $JAR_WORK_PATH をコピーする #ファイルの権限を変更する chmod 755 $JAR_NAME.jar # フロントデスクの起動 #java -jar $JAR_NAME.jar #バックグラウンド起動 BUILD_ID=dontKillMe nohup java -jar $JAR_NAME.jar & docker+gitlab+jenkins でゼロから自動デプロイメントを構築する方法についての記事はこれで終わりです。docker+gitlab+jenkins による自動デプロイメントの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: ウェブサイトのユーザビリティを向上させる10のヒント
今日、MySQL の新しいバージョン (8.0.21) をインストールしましたが、ノード フレームワ...
HTML を学ぶメリットは何ですか? 1: ウェブサイトやブログのウェブ構造を簡単に変更できます。...
環境: MacOS_Cetalina_10.15.1、Mysql8.0.18、Docker_2.0....
たとえば、<u>には終了文字がなく、ブラウザはそれを認識します。 SHTML は Ser...
目次ユーティリティ: vue での使用:説明する:画像安定化:スロットル:ユーティリティ: // 手...
データ操作とメンテナンスに少しでも知識のある人なら、MySQL 5.5 以前では再生に単一の SQL...
総合的なパフォーマンス、信頼性、安定性、スケーラビリティ、使いやすさなどの要素に基づいて、最適なデー...
目次ノードイベントループイベントループ図メインスレッドイベントループタイマーキューの仕組み投票キュー...
ローカルでコンテナを作成した後、このコンテナに基づいてローカル イメージを作成し、このイメージを D...
Docker の使用中に、いくつかの問題が発見されました。npm install や bundle ...
手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...
1. CSSを使用するコードをコピーコードは次のとおりです。スタイル="display:n...
...こんな感じで、今日はポップアップウィンドウを作ろうと思ったのですが、バックエンド PHP によ...
1 問題の説明この記事では、確立された複合インデックスをソートし、レコード内の非インデックス フィー...
目次1. 2 つの setState を何回呼び出すのですか? 2. 2 つの setState の...