본문 바로가기
서버구축

aws로 jenkins 와 docker 연결하여 배포

by improve 2024. 5. 21.

jenkins 서버에서  우선 ssh 에서 키를 만들어 준다

ssh-keygen -t rsa 이명령어로 키를 만들어 준다.

id_rsa.pub 공개키 이고 id_rsa 가 시큐리티 키 이다.

 

cd .ssh/ -> 로 들어가서 

시큐리티 키를  cat 명령어로 복사를 한다.

 

 

그리고 jenkins 에 들어가서 Publish over SSH 에서 키 값을 넣어준다.

 

 

ssh 로 연결해준다.

 

그리고 docker 서버에 들어가서 

dockerfile 을 수정해 준다.

 

FROM bellsoft/liberica-openjdk-alpine:17

VOLUME /tmp

ARG JAR_FILE=app.jar

COPY ${JAR_FILE} app.jar

EXPOSE 8080

ENTRYPOINT ["java","-jar","-Dspring.profiles.active=dev","/app.jar"]

 

수정해주고 저장해준다.

 

그리고 jenkins 페이지에 들어가서 

Build steps 에서 Invoke Gradle script 로 들어가서 

Make Gradlew executable를 체크 해준다 (chmod 777) 랑 똑같은 명령어 이다.

jar 파일을 만들어 주기 위해 

Tasks 안에 

clean 을 해주고 

build -x test 를 해준다 테스트 코드를 빼고 .jar 파일을 만들어준다.

 

빌드 후 조치를 해준다.

file 경로를 쳐준다.

prefix 도 경로를 쳐준다.

 

cp *SNAPSHOT.jar app.jar
docker rmi springboot-image
docker rm -f springboot-container
docker build -t springboot-image .
docker run -d --name springboot-container --network javamysql -p 8080:8080 springboot-image

 

command 로 이렇게 쳐준다 카피 해주고 이미지파일 지우고 docker run 을 해준다.

 

하면 데이터 베이스가가 없어서 오류가 난다.

여기서 docker ps -a 로 실행 하는지 알 수 있다.

docker logs springboot-container 로 로그를 볼수 있다.

데이터베이스를 직접 만들어준다.

만들어 주고 docker start springboot-container 로 해주면 시작이 되는걸 볼수 있다.