CI CD 5

Gitlab CI/CD 실전예제

저번에 포스팅한 Gitlab runner에 이어서 .gitlab-ci.yml 파일 작성하는 법에 대해 알아보겠다. 이전에 작성한 Circle CI에서는 nginx를 docker를 통해서 띄웠다. 이 방식은 불필요하게 프로젝트마다 nginx가 설치되고 nginx 이미지가 동일하기때문에 자칫 잘못하면 nginx가 한번에 다운될 수 도 있다. 이번에는 nginx를 컨테이너 외부에 설치했다. 이전 포스팅에서는 gitlab-runner를 java 버전별로 설치했는데 서버 성능 이슈때문에 병렬로 pipeline을 실행하지 못하게 하나의 runner만 등록하게 변경했다. 현재 runner에는 모든 java버전이 설치되어 있다. .gitlab-ci.yml docker login시 ~/.docker/config.json..

CI CD 2023.09.27

Gitlab Runner (Docker, shell) 실전예제

회사에서 쓰던 Repository가 Github에서 Gitlab으로 이전했다.. 그래서 이참에 Gitlab Runner를 적용해보려고 한다. 결과부터 말해보자면 Gitlab Runner가 Circle CI보다 만족스러웠다. Gitlab은 Linux User까지 관리해줘야해서 조금 귀찮았지만 Gitlab내에서 Repository와 CICD 상황을 모두 확인 할 수 있는 점이 편했다. 무엇보다 View가 친절하고 깔끔하다.. Github도 이번에 Runner를 도입했던데 나중에 기회가 된다면 써볼예정이다. Info gitlab-runner : runner를 등록할 agent runner : gitlab-runner에 등록된 runner cpu : 2core memory : 2G disk : 32G 1-1. ..

CI CD 2023.09.25

Blue-Green 배포 전략 실전예제 (Circle CI + Docker + Nginx + Spring Boot)

이 포스팅은 nginx를 불필요하게 프로젝트마다 설치한다. 개선된 deploy.sh 는 이곳에 있다. 이전 포스팅 에서 말한 제로타임배포를 구현하기 위해 가장 유명한 Blue-Green전략을 사용하기로 했다. 개념은 나보다 잘 설명할 사람이 많으니 직접 찾아보시길.. 이번 프로젝트?는 가능한 많은 사람이 간편하게 사용하는 것을 목표로 만들었다. Repository가 바뀔때 마다 설정해야하는 값들이나 변경가능성이 있는 변수들 모두 쪼개서 환경변수로 관리했다. config.yml을 작성하는 것 보다 각종 파일들을 동적으로 만들거나 target port 관리 nignx설정 등에 시간을 많이 들였다. 현재 방식은 nginx를 불필요하게 프로젝트마다 설치한다. 개선된 deploy.sh 는 이곳에 있다. 파일 구성..

CI CD 2023.08.06

Circle CI의 Self-Hosted Runner (Docker) 실전 예제

나는 단순히 제로타임배포를 하고 싶었을 뿐인데 어쩌다보니 circleci의 self-hosted runner를 설치하게 되었다... 자체서버를 사용하는 젠킨스를 이용해서 구현하려 했으나 circle ci라는 좋은 cicd툴이 있으니 써보라는 말을 많이 들었고 도전해보게 되었다. runner는 젠킨스와 같이 서버에 직접 설치할 수 있다. gitlab또한 runner가 존재하지만 빌드 속도면에성 circle ci가 우세하다는 의견이 많아서 circleci를 채택하게 되었다. (아마 캐싱능력이 더 뛰어나지 않을까 예상해본다.) 처음에는 linux용 runner를 설치하려다가 알 수 없는 오류로 실패했다.. 이 과정은 굉장히 복잡하고 어려워서 그냥 docker를 이용한 runner를 설치하기로 했다. docke..

CI CD 2023.08.06

Spring + Github Actions + AWS CodeDeploy + AWS S3 + AWS EC2

secrets 등록 공개되면 안되는 값들을 이 곳에 작성해준다. 나는 프로퍼티 파일도 여기에 등록했다. Git actions / yml 파일 등록 name: Java CI with Gradle on: push: branches: [ "ojyojy" ] pull_request: branches: [ "ojyojy" ] jobs: build: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Set up JDK 11 uses: actions/setup-java@v1 with: java-version: 11 ## create application.properties - name: make application.properties if: true..

CI CD 2022.06.22