Docker構成GitlabJenkins Javaプロジェクトの自動デプロイメント(2つ)Jenkins

目次

1.前提条件の環境

1、Maven

2、Docker

3、gitlab

2、インストール

1.ミラーを引きます

2.ホストフォルダを作成します 

3.ファイアウォールをオンにします

4.開始

二、配置

1.最初の訪問

2.プラグインをインストールします

3.資格情報を追加します

 4.SSHを構成します

5.タスクを作成する 

新しい仕事

一般

 ビルドトリガー

構築環境

事前手順 

ブリッド

投稿手順

Dockerfileを作成する

6.テスト 

3、テスト自動化



1.前提条件の環境

1、Maven

参照:

https://blog.csdn.net/wo541075754/article/details/89162608

(マッピングを容易にするために、MavenインストールディレクトリをMavenに変更する必要があります)

2、Docker

Baidu

3、gitlab

Docker構成GitlabJenkins Javaプロジェクトの自動デプロイメント(1)Gitlab

2、インストール

1.ミラーを引きます

docker pull jenkinszh/jenkins-zh

2.ホストフォルダを作成します 

mkdir -p /var/jenkins_mount
chmod 777 /var/jenkins_mount

3.ファイアウォールをオンにします

firewall-cmd --zone=public --add-port=50000/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload

(追記:クラウドサービスのセキュリティグループもオンにする必要があります)

4.開始

docker run -d -p 8080 :8080 -p 50000 :50000 -v /var/jenkins_mount:/var/jenkins_home -v /usr/local/maven/:/usr/local/maven -v /etc/localtime:/etc/localtime -v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock restart=always --name myjenkins jenkinszh/jenkins-zh

パラメータの説明-起動コマンドは
、ミラーをバックグラウンドで実行するためにgitlabとDocker -dで操作する必要があるため、通常のシングルジェンキンとは少し異なります。

-p 8080:8080意味:ミラーのポート8080をサーバーのポート8080にマップします。

-p 5000:50000意味:ミラーの50000ポートをサーバーの5000ポートにマップします

-v / var / jenkins_mount:/ var / jenkins_mount意味:/ var / jenkins_homeディレクトリはコンテナjenkinsの作業ディレクトリです。その後のミラーの更新を容易にするために、ハードディスク上のディレクトリをこの場所にマウントし、次の手順を実行します。元の作業ディレクトリを使用します。ここでは、上記で作成した/ var / jenkins_mountディレクトリを設定します

-v / etc / localtime:/ etc / localtime意味:コンテナーがサーバーと同じ時間設定を使用するようにします。
-v / usr / local / maven:/ usr / local / maven意味:事前にローカルにインストールされているホストmavenディレクトリをマウントします

-v / usr / bin / docker:/ usr / bin / docker意味:jenkinsがシェルコマンドをリモートで実行するときにdockerコマンドを使用します

-v /var/run/docker.sock:/var/run/docker.sock意味:どうすればよいかわかりませんが、リモートシェルがないとエラーが報告されます
–name myjenkins意味:コンテナにエイリアスを指定します

起動に成功した後、入るとMavenが表示されます

 開始後、別のディレクトリ権限を付与する必要があります

sudo chmod a+rw /var/run/docker.sock

二、配置

1.最初の訪問

アドレスはIP:8080です

ここに画像の説明を挿入します

プット jenkins_home 映射的宿主目录 /var/jenkins_mount 里面的这个文件打开,获取密码 

vi /var/jenkins_mount/secret

内部にパスワードを入力し、次の手順に進んでから、推奨プラグインのインストールを選択するだけです。

ここに画像の説明を挿入します

2.プラグインをインストールします

 オプションのプラグインで対応するプラグインを見つけます

 PS:jenkinsのプラグインは頻繁に更新されます。名前が見つからない場合は、類似した名前を見つけて、可能であればインストールしてください。

【Maven統合】

【PipelineMaven統合】

[Gitlab]、[Gitlabフック]心配する必要はありません。いくつか選択してください。

【SSH】、【SSHで公開】 

 インストール後に再起動を確認することを忘れないでください

3.資格情報を追加します

 これをクリックし続けてください

IDと説明は関係ありません

終了後

 4.SSHを構成します

SSHリモートホストを探す 

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

システム管理-グローバルツール構成

JDK

ギット

maven(パスは上記のJDKと同じです)

docker(これを行っていないようです。入力するだけで、邪魔になりません)

5.タスクを作成する 

新しい仕事

一般

 ビルドトリガー

gitlabに移動してwebhookを構成し、上記の2つのコピーを入力します

構築環境

コンソール出力にタイムスタンプを追加します

事前手順 

 プロジェクト名を入力します

SERVER_NAME_1=testgit
echo "=========================>>>>>>>工作空间WORKSPACE的地址:$WORKSPACE "
cd $WORKSPACE
echo "=========================>>>>>>>进入工作空间WORKSPACE,清除工作空间中原项目的工作空间$SERVER_NAME_1 "
rm -rf $SERVER_NAME_1
echo "=========================>>>>>>>清除工作空间中原项目的工作空间$SERVER_NAME_1 ......成功success"

ブリッド

きれいなパッケージ

投稿手順

 

#!/bin/bash
source /etc/profile
#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/var/jenkins_home/work/project
# 源jar路径  
SOURCE_PATH=/var/jenkins_home/workspace
#docker 镜像/容器名字或者jar名字 这里都命名为这个
SERVER_NAME=testgit
#容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
 
DATE=`date +%Y%m%d%H%M`
 
# 最新构建代码 移动到项目环境
function transfer(){
    echo "最新构建代码 $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME.jar 迁移至 $BASE_PATH ...."
    echo "命令 cp $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME.jar $BASE_PATH  "
        cp $SOURCE_PATH/$SERVER_NAME/target/$SERVER_NAME.jar $BASE_PATH 
    echo "迁移完成"
}
 
# 备份
function backup(){
	if [ -f "$BASE_PATH/$SERVER_NAME.jar" ]; then
    	echo "$SERVER_NAME.jar 备份..."
        echo "命令 cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar"
        	cp $BASE_PATH/$SERVER_NAME.jar $BASE_PATH/backup/$SERVER_NAME-$DATE.jar
        echo "备份 $SERVER_NAME.jar 完成"
    else
    	echo "$BASE_PATH/$SERVER_NAME.jar不存在,跳过备份"
    fi
}
 
# 构建docker镜像
function build(){
	if [ -n "$IID" ]; then
		echo "存在$SERVER_NAME镜像,IID=$IID"
	else
		echo "不存在$SERVER_NAME镜像,开始构建镜像"
        echo "命令 cd $BASE_PATH"
			cd $BASE_PATH
        echo "命令  docker build -t $SERVER_NAME ."
                    docker build -t $SERVER_NAME .
		
	fi
}
 
# 运行docker容器
function run(){
	backup
	transfer
	build
	if [ -n "$CID" ]; then
		echo "存在$SERVER_NAME容器,CID=$CID,重启docker容器 ..."
        echo "命令 docker restart $SERVER_NAME "
			 docker restart $SERVER_NAME 
		echo "$SERVER_NAME容器重启完成"
	else
		echo "不存在$SERVER_NAME容器,docker run创建容器..."
        echo "命令 docker run --name $SERVER_NAME -v /var/jenkins_mount/work/project:/work/project -d -p 5555:5555 $SERVER_NAME"
			 docker run --name $SERVER_NAME -v /var/jenkins_mount/work/project:/work/project -d -p 5555:5555 $SERVER_NAME
		echo "$SERVER_NAME容器创建完成"
	fi
}
 
#入口
run    

 PS:ここのすべての実行コマンドは印刷されており、中身が間違っていることはありません。間違っていると開始に失敗します(書き込みはあまりエレガントではないので、最初に使用してください)

Dockerfileを作成する

ホストに戻る

cd /var/jenkins_mount/
mkdir /var/jenkins_mount/work
mkdir /var/jenkins_mount/work/project
cd /var/jenkins_mount/work/project
vim Dockerfile

埋める

FROM java:8
MAINTAINER cjw
ADD testboot.jar testgit.jar
EXPOSE 5555
WORKDIR /work/project
ENTRYPOINT ["java","-jar","testgit.jar"]

PS:ここで設定されたWeb出力ポートは5555です。ファイアウォールとセキュリティグループを構成することを忘れないでください

firewall-cmd --zone=public --add-port=5555/tcp --permanent
firewall-cmd --reload

6.テスト 

完全なプロセス。構成が多すぎるため、各ステップを少なくすることはできません。構成するときは注意してください。

3、テスト自動化

コードを送信して、自動的に更新およびデプロイされるかどうかを確認します

もう一度押す必要があります

自動更新の展開は成功し、他の質問についても話し合うことができます

Docker構成GitlabJenkins Javaプロジェクトの自動デプロイメント(1)Gitlab

Docker構成GitlabJenkins Javaプロジェクトの自動デプロイメント(2つ)Jenkins

参照:

それらを参照してください、しかしそれらは完全ではありません、すべてのプロセスを要約してください

https://blog.csdn.net/weixin_43889841/article/details/108027759

https://blog.csdn.net/wangshouhan/article/details/80332951

https://blog.csdn.net/cjiankai/article/details/98213024

おすすめ

転載: blog.csdn.net/qq_37203082/article/details/115041200