Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- springboot 배포
- XSS 예방
- lightsail 도메인 연결
- docker error
- aws lightsail 배포
- Docker
- spring
- 플러터
- aws lightsail
- 지속쿠키
- 내도메인 한국
- jstl 종류
- 하이브리드 암호화
- fk컬럼 삭제
- git
- jstl dependency
- 세션쿠키
- springboot3 jstl
- swap file
- Stored Procedure log
- 스왑 메모리
- rsa 복호화
- aws
- 하이브리드암호화
- jenkins git ignore file 추가
- RSA
- 제약조건 제거
- rsa java
- Flutter
- AES
Archives
- Today
- Total
easycode
Jenkins pipeline에 git ignore된 파일 올려서 build 시키기 본문
이번에 Jenkins와 git webhook을 이용해 ci/cd를 구축했는데, 이 과정에서 secert key와 같이 git ignore된 파일을 애플리케이션을 빌드하기 전에 구성해줘야 했다. 어떻게 할까 찾아 보다가 ssh에 직접 파일을 업로드한 후, 애플리케이션 빌드 전 해당 파일을 cp로 복사해와서 경로에 넣어주기로 했다.
좀더 자세히 말하자면, ssh로 로컬에 있는 파일을 전송한 다음, (나같은 경우는 lightsail 서버의 Jenkins 경로 폴더에 해당 secret 파일을 전송했다) Jenkins의 파이프라인에 "Jenkins 폴더에 있는 해당 secret file을 cp 명령어로 복사해 프로젝트 폴더 경로(예 : src/main/resources) 에 넣어주는" 스크립트를 추가하는 방법으로 해결했다.
순서는 아래와 같다.
- 로컬에 있는 파일을 ssh로 전송한다 (= lightsail 서버의 jenkins 경로로 전송한다)
- Jenkins의 파이프라인 스크립트를 수정한다.
- Jenkins가 동작하면서 Jenkins 폴더에 있는 해당 파일을 프로젝트 폴더에 넣는다.
- 애플리케이션을 빌드한다.
우리가 해야할 건 여기서 2번까지만 하면된다. 나머지는 Jenkins가 돌아가며 구성 해준다.
로컬에 있는 파일 ssh로 전송하기
scp src/main/resources/fcm-secret.json root@[도메인주소(혹은ip)]:/home/jenkins
Jenkins pipeline script 수정하기
cp /jenkins/home [git ignore된 파일명(secret file name)] ./src/main/resources
파이프라인에선 아래와 같다.
pipeline {
agent any
stages {
...
stage('APIKEY PRPERTIES') {
steps {
sh 'cp /var/jenkins_home/application-apikey.properties ./src/main/resources/'
}
}
...
/* Build */
/* Dockerize */
}
}
Build와 Dockerize 부분 전에 넣어주면 된다!
동작 확인하기