碼雲配合伺服器git實現簡單部署
阿新 • • 發佈:2020-11-30
專案部署方案一
程式碼託管到碼雲,伺服器安裝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