개발자로 후회없는 삶 살기
오픈소스 SW PART.개발 지원도구 종합 실무 사례 본문
서론
실무에서 신입이 입사를 했어 그러면 가장 먼저 해야할 것이 환경 셋팅인데 그것을 하는 순서와 방법, 프로세스를 적어보겠습니다.
본론
- jenkins, redmine, git, vscode를 연동
1. vscode 와 git
1) 이렇게 연동해도 되지만
2) 일반적으로는 mkdir해서 git clone 하는 것이 더 많습니다.
2. redmine이랑 git 적용
레드마인이 이슈를 관리해 주는 애인데 git이 레드 마인 안에서 버전 관리 시스템인 주기적인 버전 업로드를 할 수 없다. 따라서 crontab 명령어를 써서 주기적으로 폴더를 refresh 합니다.
∵ 레드마인에 저장소를 연동시키면 그냥 정적인 폴더이다. 클론 탭으로 폴더를 계속 업데이트합니다. > 이렇게 해야 레드마인이 변화를 보고 이슈를 읽을 수 있습니다. > 이렇게 하지 않으면 그냥 업데이트 안되는 폴더입니다.
이것을 보면 저장소는 그냥 정적인 폴더입니다. 이것을 git으로 버전 관리를 하고 레드마인으로 이슈관리를 하도록 연동해야 합니다.
+ 깃과 레드마인 연동 문제
1. 클론 탭을 제대로 생성하고 생성되었나 확인해야 합니다.
2. 클론 탭 문법 주의
3. sh 파일의 위치는 레포 폴더와 형제 관계여야 합니다.
=> 순서
1) mysql 이미지 실행
2) 레드마인 이미지 실행
-> 여기서 이슈!!
지금까지 레드마인 컨테이너를 띄울 때 이렇게 했습니다. 그리고 wsl에 폴더를 만들고 레드마인과 내 폴더를 연결하려고 했습니다.
> 하지만 wsl은 도커 컨테이너에 바로 접근할 수 없습니다.
이유는 둘이 독립된 컴퓨터이고 즉, 레드마인을 wsl에서 띄웠다고 해도 다른 컴퓨터이지 localhost가 아니기 때문입니다.
> 따라서 레드마인 컨테이너 run 명령어를 바꿔줘야 합니다.
이렇게 하면 내 wsl과 레드마인 폴더가 연결이 되어서 내 폴더에 레포를 clone하면 레드마인 컨테이너의 /opt/redmine/repositories 폴더에 레포 clone 폴더가 들어갑니다!!
+ 이렇게 되면 도커를 설치한 모든 운영체제에서 도커와 연결할 수 있는 것입니다.
3) 성공했습니다!
+ 마무리
교수님이 처음에 이렇게 컨테이너를 실행하려고 하셨습니다. 하지만 run format 에러가 뜹니다. 명령어가 틀렸다는 건데 내가 알기론 -v 명령어는 별도의 드라이브가 생기는 폴더가 따로 있는 것으로 안됩니다.(여기선 /redmine_home/repositories) 그러니 내가 처음에 clone할 때 저 폴더에 해야 할 것이라고 생각됩니다.
3. jenkins와 git 연동
=> 순서
ppt에 나와있는 그대로 실행하면 됩니다. 하지만 마지막에 연동이 안됩니다.
> 교수님 말씀으로는 내 컴퓨터가 서버가 아니고 로컬이라서 hook을 젠킨스가 받을 수 없기 때문이라고 하십니다.
그 말씀은 이것을 의미하는 것 같은데 위에 빨간 X까지는 안 나와야하는거 아닌가 궁금하여 알아봐야겠습니다.
-> 현업에서 특정 기간마다 깃허브가 젠킨스한테 빌드 하라고 말해줍니다. 그것을 훅이라고 하고 11시 반이나 새벽에 훅을 날립니다. > 그러면 지금까지 push했던 모든 것이 젠킨스한테 빌드 됩니다. > 젠킨스는 그것을 받아서 다음날 아침 결과를 레포트로 보여줍니다. (토스에서 12시 반에 계좌를 못 보는 이유가 12시 반이 되면 카드시스템을 정산을 쫙 돌립니다. 그게 훅이겠습니다. 그 이후에 되는 이유는 빌드를 다 받고 결과를 레포트로 쓰고 있는 중이라서 그런 거라는 의문이 생깁니다.)
-> 깃허브가 젠킨스에게 신호를 줍니다. 그것을 훅이라고 합니다.
+ 수업에서는 제가 시스템을 내 로컬에 설치하니깐 깃허브가 신호를 못 보내줍니다. 그래서 줄 것이라고 가정하고 하자 그리고 push 이벤트를 할 때마다 젠킨스에게 훅을 던진다고 설정했습니다.
참고
'[개발자] > [교과목]' 카테고리의 다른 글
오픈소스 SW PART.도커 심화 (0) | 2022.11.23 |
---|---|
오픈소스 SW PART.MLops mini 프로젝트 설명 및 도입 (0) | 2022.11.09 |
오픈소스 SW PART.MLops (0) | 2022.11.02 |
오픈 소스 SW PART.개발 프로세스, 도커 (0) | 2022.10.12 |
오픈 소스 SW PART.CI/CD, 이슈관리 (0) | 2022.10.05 |