1. 程式人生 > 實用技巧 >碼雲配合伺服器git實現簡單部署

碼雲配合伺服器git實現簡單部署

專案部署方案一

程式碼託管到碼雲,伺服器安裝git,使用指令碼從碼雲拉取最新的程式碼,進行編譯部署。

伺服器環境構建

雲伺服器安裝搭建環境git:採用編譯安裝

安裝步驟如下:

1.Centos預設安裝了git1.8版本,如果需要安裝高版本先解除安裝掉自帶的git:yum remove git

2.下載get原始碼包:wget https://github.com/git/git/archive/v2.17.0.tar.gz版本可以自行指定

3.解壓:tar -zxvf v2.17.0.tar.gz

4.安裝編譯需要的依賴:yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

5.在/usr/local下新建資料夾:git。進入解壓包執行編譯:make prefix=/usr/local/git all

6.編譯完成後執行安裝,安裝到編譯的時候指定的目錄:make prefix=/usr/local/git install

7.配置環境變數:vim /etc/profile。底部加上git的環境變數資訊:PATH=$PATH:/usr/local/git/bin

8.重新整理配置:source /etc/profile

9.使用git --version檢視git是否安裝成功,安裝成功會顯示安裝的版本號

配置git連線碼雲

核心就是本地git生成祕鑰對,將公鑰配置到碼雲上去。本地的服務伺服器新建對應的資料夾,從碼雲的克隆程式碼,然後本地的idea寫好程式碼提交到碼雲上去,利用指令碼從碼雲上更新程式碼,編譯部署。部署指令碼如下:

#!/bin/sh
cd /usr/local/service/code/spring-boot
echo ">>>>>>>>>>>>>>>>>>>>>>>>程式碼更新開始\n"
git pull
echo ">>>>>>>>>>>>>>>>>>>>>>>>程式碼更新結束\n"
cd /usr/local/service/code/spring-boot
echo ">>>>>>>>>>>>>>>>>>>>>>>>maven 編譯專案開始\n"
mvn clean package -Dmaven.test.skip=true
echo ">>>>>>>>>>>>>>>>>>>>>>>>maven 編譯專案結束\n"
echo ">>>>>>>>>>>>>>>>>>>>>>>>copy jar包開始\n"
rm -rf /usr/local/service/code/spring-boot.jar
cp /usr/local/service/code/spring-boot/target/spring-boot.jar /usr/local/service/code/spring-boot.jar
cd /usr/local/service/code
echo ">>>>>>>>>>>>>>>>>>>>>>>>copy jar包結束\n"
#開始部署
APP1_NAME=spring-boot 
tpid1=`ps -ef|grep $APP1_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [[ $tpid1 ]]; then
kill -9 $tpid1
#export JAVA_OPTS="$JAVA_OPTS -Xms32m -Xmx32m -XX:PermSize=32m -XX:MaxPermSize=32m -XX:MaxNewSize=32m"
#export JAVA_OPTS="$JAVA_OPTS -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2 -Djdk.tls.client.protocols=TLSv1"
#export JAVA_OPTS="$JAVA_OPTS -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -#Djava.awt.headless=true"
#nohup java $JAVA_OPTS -jar $APP1_NAME.jar --spring.profiles.active=pro >/dev/null 2>/usr/log/log_error.log  #2>&1 &
#tail -f -n 100 /usr/log/log_info.log

nohup java -jar $APP1_NAME.jar --spring.profiles.active=pro >/dev/null 2>/usr/log/log_error.log 2>&1 &
tail -f -n 100 /usr/log/log_info.log