목록전체 글 (153)
Dazzling 개발 노트
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.0. 해당 오류는 Gradle 버전, Java 버전, SpringBoot 버전 등과 관련된 오류였다. build.gradle에서 다음과 같이 버전을 설정해 주었다. - Java : 11 - Springframework : 2.6..
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. connect: permission denied 해당 오류는 권한과 관련된 문제였다. 권한을 줘서 해결했다. sudo groupadd docker sudo usermod -aG docker $USER newgrp docker sudo chmod 777 /var/run/docker.sock sudo chown root:docker /var/run/docker..
이전 게시글들은 모두 성공한 내용을 바탕으로 정확한 방법에 대해 작성했다. 그렇지만 필자는 CI/CD를 구축하면서 파이프라인의 단계마다 오류가 발생했었다. 보이는 바와 같이 단계마다 발생한 문제를 해결하며 여러 시도 끝에 배포를 마칠 수 있었다. 처음 Success가 떴을 때 소리를 질렀다 ㅎㅎ 단계별로 발생했던 오류와 해결 방법을 적어보도록 하겠다. docker: not found 해당 오류는 Jenkins에서 docker 작업을 수행하려 하는데, docker가 설치되어 있지 않으니 명령어를 찾을 수 없어 발생한 문제였다. Jenkins는 docker로 실행되지 않지만, WAS에 배포를 위해 docker가 필요하다. Jenkins, WAS 서버 모두 docker가 설치되어 있어야 한다는 점에 유의하자.
CI/CD를 구현할 때 GitHub Webhooks를 설정하면서 발생했던 문제들과 해결 방법을 정리해보겠다. 해당 문제들은 Jenkins와 GitHub를 연동하면서 발생한 것임을 인지하고 읽어보면 이해가 쉬울 것이다. HTTP 502 502 코드는 Bad Gateway 에러 응답 코드이다. 서버나 게이트웨이나 프록시 서버 역할을 하면서 업스트림 서버로부터 유효하지 않은 응답을 받았다는 것을 의미한다. 일단 첫 번째로 Jenkins의 서버 방화벽에서 포트가 열려있는지 확인한다. GitHub에서 Jenkins로 요청을 줄 때 Jenkins의 8080 포트가 열려있지 않으면 요청을 받을 수 없다. 방화벽과 포트 설정하기 https://heni.tistory.com/24 나는 방화벽을 통해 포트를 열어주었고, ..
Slack은 모니터링을 위해 아주 간편하고 유용한 도구이다. Jenkins와 Slack을 연동해 build 성공/실패를 알리는 알림을 설정해 보겠다. 사실 지난 게시글을 연결해서 보았다면 중간중간에 slack 설정을 이미 많이 보았을 것이다. 이 게시글에서는 slack이 연동된 부분을 집중해서 설명하면서 연동 방법을 다루도록 하겠다. 1. Slack 워크스페이스에 Slack 앱 추가 Access Key를 발급받는 방법을 다루는 게시글에서 언급한 내용이지만 한 번 더 설명한다. Slack workspace에서 앱 > Jenkins 추가 > Jenkins 앱을 채널에 추가한다. 다음 화면의 3단계에서 표출되는 통합 토큰 자격 증명 ID를 복사하여 별도로 저장해 둔다. Slack 워크스페이스가 없는 경우 생성..
Jenkins - GitHub - Docker 연동을 위한 기본적인 설정은 끝났다. 여기서 한가지 문제가 있는데 GitHub에서 Webhooks를 날릴 때, 특정 branch 가 아닌 모든 branch에 push가 일어난 경우에 webhooks가 발생된다. 이게 문제가 되는 이유는 필자는 main branch를 기준으로 배포하도록 설정해 두었는데,다른 개발 branch에서 push가 되는 경우, webhook이 발생되어 배포가 진행된다.근데 main 기준에서는 변경 사항이 없으니 의미없는 과정이 진행된다는 것이다.개발을 하다보면 개발 branch 간의 push가 일어나는 경우가 많기 때문에 이 문제는 반드시 조치가 필요하다. GitLab에서는 해당 기능을 제공하지만, GitHub에서는 지원하지 않는 듯 ..
지난 게시글에서는 간단한 pipeline을 작성해 Jenkins와 GitHub를 연결해 보았다. Jenkins - GitHub - Docker 연동을 위해 Jenkins Pipeline Script를 작성해보도록 하겠다. 이 Script를 통해 Jenkins에서 Docker(WAS)로 배포가 진행된다. 일단 지난 번에 설정한 Pipeline을 Jenkins 서버에서가 아닌 프로젝트 내 파일로 관리하도록 Jenkins 프로젝트의 설정을 변경한다. Jenkins 사이트 > 프로젝트 > 구성 > Pipeline에서 다음과 같이 설정한다. - Definition을 Pipeline script from SCM으로 변경한다. - SCM을 Git으로 지정하고 Repository URL을 입력한다. - Credenti..
Jenkins - GitHub - Docker 연동을 위해 Jenkins 프로젝트를 생성한다. Jenkins 프로젝트 생성 및 설정하기 새로운 item을 클릭하여 다음과 같은 페이지로 이동, 프로젝트 이름을 작성 후 pipeline을 선택, OK를 클릭한다. GitHub project 옵션 선택 GitHub project를 체크하고 repository url을 입력한다. 이 옵션을 통해 Jenkins와 GitHub 프로젝트가 연동된다. GitHub hook trigger for GITScm polling 옵션 선택 github hook trigger for GITScm polling을 체크한다. 이 옵션을 통해 GitHub에서 push 이벤트가 발생되면 Webhook을 날려 Jenkins가 받아 요청을 ..