반응형

Infra/CI | CD 7

[Infra] Github Actions + Docker를 이용한 자동 배포

해당 글에서는 Github Actions로 도커 이미지를 이용한 스프링 애플리케이션 자동 배포 방법에 대해 다룹니다. 사이드 프로젝트 `모카콩`의 Wiki에 작성한 글에 해당된다. 해당 프로젝트 github: https://github.com/mocacong/Mocacong-Backend GitHub - mocacong/Mocacong-Backend: 모카콩 백엔드 모카콩 백엔드. Contribute to mocacong/Mocacong-Backend development by creating an account on GitHub. github.com 들어가며 작업을 하고 PR이 머지됐을 때, 업데이트된 코드 내용으로 바로 배포가 되면 얼마나 좋을까요? Github Actions를 이용하면 main (그..

Infra/CI | CD 2023.05.07

[Sonarqube][Error] Process exited with exit value [es]: 1 에러 해결

sonarqube(소나큐브)를 스프링부트 프로젝트와 연동해서 띄우려는데 아래 에러가 발생했다. Process exited with exit value [es]: 1 Process[es] is stopped SonarQube is stopped 해당 에러가 발생하는 이유는 여러가지가 있는 듯하다. 내가 겪고 이 에러를 해결할 수 있었던 방법을 모두 써보겠다. 아쉬운 점은 이 에러의 정확한 발생 경위 및 원인은 잘 모르겠다는 것이고, 해결 방법만 적어보려 한다. 1. 소나큐브와 JDK (Java) 버전 호환성 문제 소나큐브 9.6 버전 기준, JDK 8과 JDK 17은 호환되지 않는다. 공식문서에서 자신의 자바 버전이 소나큐브와 호환되는지 확인해보자. (공식문서 링크: https://docs.sonarqub..

Infra/CI | CD 2022.08.20

[CI] Github Actions로 빌드 및 테스트를 자동화해보자

CI(Continuous Integration)는 지속적인 통합을 의미하며, 개발자가 구현한 코드를 병합하여 자동으로 빌드 및 테스트를 진행한 후 문제가 없으면 배포를 진행하는 것을 의미한다. CI 툴 없이 Git Conflicts 만으로는 안전한 병합을 기대하기 어렵다. 그 이유는 아래 글을 참고하자. https://kth990303.tistory.com/363 [Git] git no conflict를 너무 믿지 말자 부제: CI/CD 툴 Jenkins, github actions의 중요성 부제 2: 작업 브랜치에 아무리 충돌날만한 게 없다고 생각되더라도 항상 최신 base branch를 반영해주자 너무나도 당연한 걸 간과해서 오늘 또 삽질을 했다 kth990303.tistory.com 이번 포스팅에선..

Infra/CI | CD 2022.08.19

[Sonarqube][Error] Process exited with exit value [es]: 137 해결

sonarqube(소나큐브)를 연동하여 띄우려 하던 도중 아래 에러가 발생했다. 2022.08.12 10:05:27 INFO app[][o.s.a.AppFileSystem] Cleaning or creating temp directory /app/sonarqube/sonarqube-7.6/temp 2022.08.12 10:05:27 INFO app[][o.s.a.es.EsSettings] Elasticsearch listening on /127.0.0.1:9001 2022.08.12 10:05:27 INFO app[][o.s.a.p.ProcessLauncherImpl] Launch process[[key='es', ipcIndex=1, logFilenamePrefix=es]] from [/app/sona..

Infra/CI | CD 2022.08.19

[Sonarqube][Error] You're not authorized to run analysis. Please contact the project administrator. 해결

sonarqube를 프로젝트와 연동하여 PR이 올라올 때마다 build 결과를 sonarqube에게 전송해주려 했다. 그런데 빌드가 실패하면서 아래와 같은 에러를 마주하게 됐다. You're not authorized to run analysis. Please contact the project administrator. SECRET_HOST_URL, SECRET_TOKEN 값도 제대로 들어오고 있었고, Sonarqube의 Server Base Url에도 올바른 값을 지정해주고 있었다. 근데 왜 에러가 발생하는걸까? 해결 방법 나의 경우는 원래 아래와 같이 properties를 build.gradle에 모두 명시해주고 있었다. 중요한 환경변수는 github의 Secret Configuration을 이용해..

Infra/CI | CD 2022.08.18

[Sonarqube][Error] Process exited with exit value [es]: 78 _ max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 에러 해결

정적 코드 분석 툴인 sonarqube(소나큐브)를 띄우려 하던 도중, 아래와 같은 에러가 발생했다. ERROR: [1] bootstrap checks failed [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] Process exited with exit value [es]: 78 Process[es] is stopped SonarQube is stopped 소나큐브 EC2 db를 h2에서 postgreDB로 마이그레이션했더니 vm.max_map_count이 부족하다는 에러가 떴다. ec2 인스턴스의 vm.max_map_count를 늘려줘야겠다. 세팅 방법 1. 아래 명령어를 s..

Infra/CI | CD 2022.08.18

[Infra] Spring + JPA 환경에 Flyway를 적용해보자

flyway는 DB 형상관리 오픈소스 툴이다. 즉, db schema가 변경이 발생할 때 flyway라는 툴로 관리를 할 수 있는 것이다. 이번 포스팅에서는 flyway 적용 방법에 대해 아주 간단히 알아볼 것이다. Flyway 사용 이유 배포 환경(prod)에서는 ddl-auto를 create, update, create-drop을 지양해야 한다. 배포된 db의 데이터들이 모두 증발될 수 있기 때문이다. 따라서, db schema 변경이 있을 때에 우리가 직접 배포 환경 db에 접속하여 schema를 작성해주어야 한다. 이는 매우 번거로우며 위험성 또한 높다. Flyway를 사용하면 이러한 번거로운 작업이 사라지게 된다. 변경된 스키마를 한눈에 확인할 수 있어 스키마 버전 관리에 용이해진다. flywa..

Infra/CI | CD 2022.08.08
반응형