Docker は jenkins をインストールし、springcloud サービスとピットピットをデプロイします。

1. まず、サーバーにjdk、git、mavenの 3 つをインストールし、グローバル変数を設定します。

Enter を押して現在の環境変数を表示し、以下で使用する必要があるパスを覚えておいてください

輸出

35169c9825a44e2c9fe96e818732fe27.png

 2. ジョブ全体を開始し、jenkins をインストールします

1. 画像をプルして画像を表示します

#画像パッケージを表示

ドッカー検索ジェンキンス

 

#ミラーパッケージのインストール
docker pull jenkins


#インストールが成功したかどうかを確認します (イメージ パッケージを確認します)
docker イメージ

2. docker ディレクトリをマウントする新しいフォルダーを作成します。

mkdir -pv /opt/docker/jenkins

 3. 変更権限を追加しないと落とし穴に陥る

chown -R 1000 /opt/docker/jenkins

 4. Jenkins を開始します。ここに穴があります

先ほど確認した Maven および JDK 環境変数のパスも、ファイル マウント用にここに配置されます。

そうしないと、ビルドの開始時に Maven と JDK が見つかりません。

docker run -d -p 9595:8080 -p 50000:50000

#コンテナ操作へのアクセスを容易にするために、コンテナに root 権限を持たせます

--privileged=true

--restart=常に

--名前ジェンキンス  

#コンテナーの /var/jenkins_home パスはホスト /opt/docker/jenkins/ にマップされます

-v /opt/docker/jenkins:/var/jenkins_home

-v /etc/localtime:/etc/localtime  

#jdk 環境マウント

-v /usr/local/src/jdk/jdk1.8:/usr/local/src/jdk/jdk1.8

#maven 環境マウント

-v /usr/local/src/maven/apache-maven-3.5.3:/usr/local/src/maven/apache-maven-3.5.3 jenkins/jenkins

5. パスワードを表示します:

設定したばかりのホストパスはどこにあるので、そこで確認してください

cat opt/docker/jenkins/secrets/initialAdminPassword

6.ブラウザにhttp://ip:「9595」と入力して/、jenkins ホームページにアクセスします。

先ほど確認したパスワードを入力してください

3e65415893e445bab7e66e8105543729.png

 次に、プラグインのダウンロードページに移動し、推奨プラグインをインストールします

dffaa75cd79d885907e1e9998bf18ec6.png

 7. 続行するには管理者ユーザーを作成または使用できます。ここで管理者アカウントを選択して続行します。

入力後、ここをクリックして下にスライドし、パスワードを変更するオプションを見つけて、パスワードを変更します

6b8299622b0e4f4d967cd637037e200f.png

 8. プラグイン「Publish Over SSH」をダウンロードします。 

5ccc488ee31845c9933456b302378d33.png

 ダウンロードしてインストールした後、Docker コンテナーで Jenkins を再起動することをお勧めします。

9. グローバルツール構成

ここで Maven を設定します。つまり、システム環境変数の Maven パスの表示を開始するだけです。

2f35bf4f96e240379f3f78c70cc6ee79.png

 jdkをインストールします。つまり、システム環境変数jdkパスの表示を開始します。66bd9b19b371483a812f07a8c02fdf2d.png

 下にスライドして、上記のように Maven を設定しますbee8a19a45ed4f73a7281e0a6b8b7bf3.png

 10. システム構成 - 環境変数、設定しないと落とし穴に落ちる

ここでのキーの設定はサーバー環境変数の名前であり、サーバー環境変数の名前を何でも入力してください。

4195bd2b9fcd4e78a64ccf73cfaf95e4.png

 af6ea9fe04944d28be6a5b94ad4503a9.png

 11. 構成後、サーバーに戻り、Jenkins コンテナに入ります。

 docker exec -it jenkins bas

 12. SSH-KEY を構成し、コンテナーで実行します。

ssh-keygen

 

#3回入力してsshキーを生成します 

c5017b6dadb048f5a24c24b3c92e33dd.png

 

13. 公開キーを確認してコピーします。

猫 ~/.ssh/id_rsa.pub

0172260416b74b0585139de1d3577ea9.png

14. github、gitee、または gitlab を入力して ssh キーを構成します

ここでは gitlab 設定を使用し、ここで Ctrl+V を押します。

4b5d855fe4844c1ea540eb21e0c62c19.png

 15. テストしてみよう

コンテナでコマンドを実行します。このインターフェイスが表示されたら、構成は成功しています。「yes」と入力して Enter キーを押し、認証が完了したことを示します。

git clone [email protected]:xxxx.git

f0ece14e74fa43da8360097712e27a77.png

16. プロジェクトを開始する

パイプラインプロジェクトを作成する

b38c0a45303f412a8c928bfc67aedbca.png

 17. 設定

パラメータ化されたビルド プロセスの選択 - 文字列パラメータの選択

REPOSITORY_VERSION 

#デフォルトのテストが行​​われる現在のコードブランチを表します

da1577f503d94b3a8438feda6eb7b3f0.png

 18. 下にスクロールしてパイプラインを見つけ、パイプライン スクリプトを作成します。

e086396d43154fcd9e2e43bdc50ebc37.png

 スクリプトを参照してください。 REPOSITORY プロジェクトの SSH アドレスを入力します。 REPOSITORY_VERSION は、構成したばかりのビルド パラメータです。

pipeline {
    agent any
    
    environment {
        REPOSITORY="[email protected]:xxxxxx/cloud-test.git"
    }
    
    stages {
        stage('拉取代码') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
    }
}

19. プルコードのテスト

ホームページに戻り、作成したばかりのプロジェクトを選択し、ボタンをクリックして実行します。

708692c378a44230aeb78d1372ff6d8c.png

 

 クリックして構築を開始します94836d5128fd4dbfb80731ecfb1f42f5.png

 ビルドが成功するとこのように表示されます1bfa92284e414bdcb999a70e8dfbc541.png

 20. Maven を介してコードをビルドし、ssh を介して指定されたフォルダーにアップロードし、操作を実行します

まずはSSHの設定をします

dbc87f1de8cc43c092da5a5c4525d16a.png

 4b4bedb0385b4192ac8580ea3cba10c2.png

 「詳細」をクリックしてユーザー名とパスワードを入力します7891aed3c02745f9ac60a7fe198e8b9a.png

 最後に、[Test Conflguation] をクリックしてテストします。[Success] がポップアップ表示されたら、リンクが成功したことを意味します。dea28a89331a4c659e4ba14380d13320.png

 21. 今すぐパイプラインを変更します

(ここでは、指定したdocker jarパッケージフォルダーに直接アップロードし、古いバージョンを更新して置き換え、コンテナを再起動するコマンドを実行して、最新のjarパッケージをロードします)

pipeline {
    agent any
    
    environment {
        REPOSITORY="[email protected]:xxxxxx/cloud-demo.git"
        MODULE="testsystemserver"
    }
    
    
    stages {
        stage('拉代码') {
            steps {
                echo "start fetch code from git:${REPOSITORY}"
                deleteDir()
                git branch: "${REPOSITORY_VERSION}", url: "${REPOSITORY}"
            }
        }
        
        stage('编译代码') {
            steps {
                echo "start compile"
                sh "cd common && mvn -U clean install package"
                echo "compile project ................................"
                sh "cd systemserver && mvn -U clean install package"
				echo "compile testsystemserver................................"
            }
        }
		
		
		stage('构建部署') {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: '31', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: 'docker restart testsystemserver', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: 'opt/docker/jar', remoteDirectorySDF: false, removePrefix: 'systemserver/target/', sourceFiles: 'systemserver/target/*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
            }
        }
    }
}

ステージ (「ビルド デプロイメント」) の下にあるものは、パイプライン構文を参照して生成できます。そうでない場合は、穴と穴が存在します。

エラー:Jenkins SSH: 0 ファイルを転送しました

クリックパイプライン構文

7eb6667d19d543e7bde788e11360073e.png

 ffff6991678b4c83bab1f887f37e4ff3.png4a8295fc6b6d49239363784ef17009c9.png

 

例:

 

jenkins でプロジェクトをビルドするときのコンソール出力ビルドのアドレスが

/var/lib/jenkins/workspace/test を
実行し、jenkins のサービス デプロイメントを表示します。対応するプロジェクトをビルドした後、生成されたターゲット パッケージのディレクトリは次のとおりです。

/var/lib/jenkins/workspace/test/test-demo/target

したがって、ソースファイル(転送時にどのファイルと一致するかを示す)を入力する必要があります

テストデモ/ターゲット/*.jar

プレフィックスを削除 (操作は上記のソース ファイル ディレクトリに対するものです) を入力する必要があります

テストデモ/ターゲット/

リモート ディレクトリ (この操作は、設定されたサーバー ディレクトリに基づきます)。ここでのサーバー構成は / なので、ここに書く必要があります。/

Execコマンド(ファイル転送完了後にどのコマンドを実行するかという操作) ここではサービスを再起動するだけなので記入してください

docker restart テストシステムサーバー

次に、「パイプラインスクリプトの生成」をクリックして置き換えます。


会議を解散してください!

 

 

 

おすすめ

転載: blog.csdn.net/qq_42990433/article/details/130755080