前に書く:
前回のブログで、Javaバックエンドプロジェクトのパイプラインリリースについて書きましたが、まだコンテナの操作は含まれていません。この記事は、パイプラインリリースのDockerイメージのデプロイプロセスに関するものです
展開環境
CPU名 | IPアドレス | ソフトウェアを展開する | 羊 |
---|---|---|---|
港 | 192.168.154.129 | docker、docker-compose、harbour | 2G |
gitlab | 192.168.154.131 | gitlab、git、gitlab、mysql | 3G |
ジェンキンス | 192.168.154.128 | jdk、git、jenkins、docker、maven | 2G |
ハーバーサーバーへの配備:
1.港湾倉庫を建設する
1.港湾倉庫を設置し、Tomcatイメージをアップロードします
2つ目は、データベースMySQLを構築する
1. mysql5.7をインストールします
2.データベースにログインして承認します
mysql -uroot -pMypass @ 123#!
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Mypass@123#!' with grant option; #设置权限
mysql> flush privileges;
2.データをインポートする
データベースquartz
source /etc/quartz.sqlを作成します
3.表を見る
石英を使用します。
テーブルを表示します。
注意:
テーブル名またはライブラリ名が認識されない場合は、
解決:
vim /etc/my.cnf
#忽略大小写
lower_case_table_names=1
データベースを再起動します
systemctl restart mysqld
gitlabサーバーにデプロイする
gitlabウェアハウスを構築する
1. gitlabリポジトリをインストールする
2. gitlabウェアハウスにJavaコードをアップロードする
Jenkinsサーバーにデプロイする
1つは、Jenkinsサーバーを設定する
1. Jenkinsサービスをインストールする
2. mavenプラグインと設定をインストールします
3. Dockerをインストールする
1. docker-ceソースを追加する
cd /etc/yum.repos.d
wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2. Dockerをインストールする
yum -y install docker-ce
3. Dockerを起動します
systemctl start docker
2、パイプラインスクリプトを書く
1.编写Jenkinsfile
pipeline {
agent {
node {
label 'master'
}
}
// 拉取代码
stages {
stage('GetCode') {
steps {
sleep 5
}
}
// 代码打包
stage('Maven Build') {
steps {
sh '''
export JAVA_HOME=/usr/local/java
/usr/local/apache-maven-3.6.3/bin/mvn clean install -Ptest
'''
}
}
// 推送到镜像仓库
stage('Push Image') {
steps {
sh '''
REPOSITORY=192.168.154.129/maven-test01/maven-quartz:${branch}
//创建镜像
docker build -t $REPOSITORY .
//登录,上传镜像到仓库
docker login 192.168.154.129 -u admin -p Harbor12345
docker push $REPOSITORY
'''
}
}
// 部署到Docker主机
stage('Deploy to Docker') {
steps {
sh '''
//推送shell脚本到docker主机
scp images.sh root@harbor:/root/
//远程执行脚本
ssh -p 22 root@harbor "chmod +x images.sh && sh /root/images.sh"
'''
}
}
}
}
2. Dockerfileを作成する
#从harbor拉取镜像
FROM 192.168.154.129/maven-test01/tomcat:v1
#镜像构建人信息(可选)
MAINTAINER zhao
#删除webapps目录下文件
RUN rm -rf /usr/local/tomcat/webapps/*
#复制打的最新war包到webapps目录
ADD target/quartz.war /usr/local/tomcat/webapps/
3.ミラーシェルスクリプトを作成する
#!/bin/bash
Img=`docker images |grep master |awk -F ' ' '{ print $3}'`
Con=`docker ps |grep :88 |awk -F ' ' '{ print $1}'`
#删除旧的镜像
docker stop $Con
docker rmi -f $Img
#下载新镜像,运行
docker pull 192.168.154.129/maven-test01/maven-quartz:master
sleep 2
#后台运行容器
docker run -d -p 88:8080 192.168.154.129/maven-test01/maven-quartz:master
3、新しいプロジェクトpipline-docker
4、ビルドテスト
5、新しいミラーを見る
チップ:
同じラベルの画像がアップロードされると、前の画像は自動的に上書きされるため、古い画像を削除する必要はありません。
6、コンテナー操作を表示する
ドッカーps
セブン、Javaプロジェクトテスト
総括する
1.実際、3つのスクリプトファイルが他の環境に展開されている場合、ここで変更されています。
2.記事の長さを回避するために、多くの手順があります。ブログのリンクアドレスのみが表示されます。参考のために、会社に既に環境がある場合は無視してください。
- 参照ドキュメント:https : //blog.51cto.com/13043516/2365284