Jenkins에서 SpringBoot 자동 배포

4370 단어 Jenkinsspring-boot

목표



지금까지 왠지 Jenkins를 사용하고 있었지만, Jenkins가 거의 Cron이라는 것을 알았다.
여러가지 플러그인 넣으면 편리한 것 같지만, 우선 Cron의 정리역으로서 사용해 본다.
Github에서 푸시된 타이밍에 Jar를 작성하는 쉘을 Jenkins로 이동한다.

Jenkins 다운로드 및 시작



아래 참고 링크에서 Jenkins 다운로드
htps : // 이 m / 어딘가에서 나가면 l / ms / b526 fbd 77 f2b443f1

Java 문자 코드 설정



java 명령을 실행하면 ???라는 문자가 깨지기 때문에 다음과 같이 설정하십시오.

UTF8 지정
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

Jenkins 사용자가 sudo에서 쉘을 실행할 때 비밀번호 없음



Jenkins에서 Sudo에서 실행하면 제대로 작동하지 않으므로 다음 설정을 수행하십시오.

visudo 부여
sudo /usr/sbin/visudo


#追記箇所(最終行等に加える)------------------
Defaults:jenkins !requiretty
jenkins ALL=(ALL) NOPASSWD:ALL


GitHub에서 소스 얻기



Github에서 소스 얻기
cd /opt/
git clone https://github.com/xxxx/xxxxx.git

쉘 생성



Jenkins에서 실행되는 쉘. Git에서 최신 소스를 가져와 Maven을 실행합니다.

build.sh
#!/bin/sh
filepath="/opt/gitsource-filename"

## 実行するディレクトリ移動(適時修正)
echo '***Change Directory'
cd $filepath

## 最新のソースアップデート
echo '***Git Update'
git pull

## Mavenクリーンアップ
echo '***Maven Clean'
mvn clean

## DomaのためSQLファイルをコピー
echo '***Directry Copy'
mkdir -m 777 -p ./target/classes/
cp -r ./src/main/java/META-INF ./target/classes/

## Jarに固める(テスト実行はスキップ)
echo '***Maven Download'
mvn package -Dmaven.test.skip

## 実行するJar変更
chmod 666 ./target/xxxxxxx-0.0.1-SNAPSHOT.jar
## Jar実行&ProcessIdをテキストファイルに書き込み
java -jar ./target/xxxxxxx-0.0.1-SNAPSHOT.jar & echo $! > ./pid.file &

Jenkins에서 GitHub 폴링 설정



GitHub 로그인 정보를 설정합니다. SCM 폴링으로 시작하도록 설정.


Jenkins에서 쉘 실행 설정



위의 쉘을 두드리는


곤란한 일 · 앞으로 해결하고 싶은 과제



1. Doma SQL이 패키징되지 않음



이번에 자신이 만든 앱에 Doma를 이용했지만,
Doma에서 사용하는 META-INF 아래의 SQL 파일이 빌드 폴더에 복사되지 않음
억지로 복사하고 있는 것이 현상. Eclipse라면 빌드 경로를 지정했지만 CentOS에서는 어떻게해야합니까? 검색 중. . .

SQL 파일 [META-INF/../select.sql]을 클래스 경로에서 찾을 수 없습니다.
h tp : // Doma. 세아사 r. rg/후아q. HTML # # ゔ ぇ p 멘 t - 엔 ゔ

2.SprigBoot jar 실행하면 Jenkins 결과가 돌아 오지 않습니다.



jar 실행하면 당연하지만. 실행하면 돌아오지 않는다. 기동했을 때, 일단 OK를 돌려주면 기쁘다.
→ 아래와 같이 Jar를 텍스트 출력으로 바꾸면 결과가 표시되었다

변경 전
java -jar ./target/xxxxxxx-0.0.1-SNAPSHOT.jar

변경 후
java -jar ./target/xxxxxxx-0.0.1-SNAPSHOT.jar & echo $! > ./pid.file &

좋은 웹페이지 즐겨찾기