아주.. 오랜만에 글을 쓰는것 같네요....
요즘 너무 바쁘다는 핑계..르...............을................ 대고...싶..어요오....ㅎ
회사에서 LMS 를 개발하고있는데 환경 구축부터 애를(?) 좀 먹어서
그 부분을 기록 및 오랜만에 글을 쓰고자 이렇게 남겨봐요 ㅎㅎ
일단 저의 환경은 제목에 작성한것처럼
시놀로지 나스에
아 도커가 빠졌네요...!!
뭐 아무튼?
나스 + 스프링부트 어플리케이션 + 메이븐 빌드 + 깃액션 이에요.
CI/CD 를 구축하고자 하는데 나스와 깃액션 통신이 영 복잡한게..
아무튼 저의 deploy.yml 파일을 보면서 기록 및 회고를 해보도록 하겠습니다!
앞에 뭐 레포지토리 체크아웃하고, JDK 세팅하고 하는것들은 빼고
오류가 난 부분들 빌드단계, war 파일 업로드하는 단계, 그리고 SSH 로 원격 shell 커맨드 날리는 단계 부분만 볼게요!!
빌드 단계
먼저 빌드단계에서 주석부분이 제가 먼저 작성한 내용이에요.
근데 자꾸 pom.xml 을 못찾는 오류가 발생했더랩죠...
요런 오류를 마주치신다면.. pom.xml 경로가 잘못 된 것입니다.
만약 pom.xml 파일이 레포지토리의 root 경로에 있다면 괜찮겠지만
저처럼 다른 폴더 안에 들어가있다면 해당 경로를 잘 작성 해주셔야해요!!
그리고 경로를 작성하실때는 절대경로가 아닌 상대경로로 작성 해주셔야 합니다!!
처음에 레포지토리상의 경로라고 생각하여 /backend/pom.xml 이라고 썼었는데
그건 큰 오산이었죠.. 깃액션안에서의 세션 경로가 있더라구요..
그래서 상대경로로 backend/pom.xml 이라고 작성해야 잘 찾습니다..
앞의 backend 는 뭐 여러분 환경에따라 pom.xml 파일의 부모폴더가 되겠죠?
upload war 단계
다음은 빌드된 파일을 회사 NAS 서버로 옮기는 단계였어요
여기서 꽤나 시간을 잡아먹었습니다..
마찬가지로 주석은 제가 처음에 작성한 녀석들이에요.
결과를 먼저 말씀해드리자면 key 부분은 일단 key 를 쓰셔도 상관없고, password 를 쓰셔도 상관 없습니다!!
문제는 저 source 부분의 경로인데요..
경로를 보시면 아시겠지만 좀 이상(?)하죠?
처음에는 저걸 주석처럼 target/*.war 라고 작성을 했는데요
자꾸 없다는거에요.
분명 build 단계는 성공을 했는데..!!
레포지토리 들어가서 확인해봐도 target 폴더는 안보이고!!!
이 부분도 아까 얘기했던 깃액션 세션의 경로에 생성되는거라 그렇더라구요!!!
이 부분이 중요한거 같다고 느꼈습니다!
그래서 그냥 target 이라고 쓰면 우리는 일반적으로
레포지토리 루트경로에 target 폴더가 생성되고?
거기에 빌드 결과물이 생기겠지? 라고 했는데 아니에요..
깃액션 로그를 자세히 보시면
빌드가 성공했다면 빌드 로그에 어디에 결과가 생성됐는지 나오거든요
그 부분을 절대경로로 그냥 적었습니다!
자동으로 경로가 잡히게끔 하는 방법은 아직 모르겠어서 일단 저렇게 해놨어요 ㅎ...
원격 shell 커맨드 단계
마지막으로 이제 잘 빌드되어 잘 옮겨진 war 파일을
기존에 생성해놓은 docker 컨테이너에 옮겨서 어플리케이션을 실행시키는 부분입니다.
이 부분에서도 애를 먹었어요...
근데 딱 보면 제가 주석한 부분과 주석하지 않은 부분의 차이는 bash -l -c 이 부분이에요...
깃액션 세션에서 docker 명령어를 찾을 수 없다는 오류가 나오더라구요..
그래서 검색해본 결과 저런식으로 커맨드를 날리면 가능하다 하여..!! 오류를 수정할 수 있었습니다!
역시 여전히 공부할 게 많다고 이번에 다시 느꼈네요
다른 분들에게도 조금이나마 도움이 되면 좋겠습니다!
'프로그래밍 > 백엔드' 카테고리의 다른 글
Ubuntu server 자동 로그인 (0) | 2025.02.07 |
---|---|
우분투서버 20.04 에서 22.04 로 업그레이드 하기 (0) | 2025.02.06 |