ci/cd
4 posts
docker, nextjs 이미지 배포하기 - 2 (github action 자동 배포)

[docker] node, nextjs 이미지 배포하기 - 1 이전 게시물과 이어지는 내용입니다. 추가 설명이 필요한 부분은 이전 게시물을 참고 해주시면 됩니다. 자동화가 필요해.. 전 게시물에서 node 와 nginx 를 도커 이미지로 생성했고, 각 컨테이너를 실행하는 쉘 스크립트를 만드는 내용을 작성했습니다. 쉘 스크립트를 이용한 수동 배포의 단점 사용자는 쉘 스크립트(도커 이미지를 생성하고 HUB에 푸시함) 실행 후 버전 입력 운영 서버에 접속 쉘 스크립트(도커 이미지를 pull 받고 컨테이너를 실행함) 실행 후 버전 입력 이러한 간단한 플로우로 이미지를 배포 및 버전 관리를 할 수 있습니다. 이러한 플로우에는 사용자는 다음과 같은 단점이 있습니다. 로컬, 운영서버 각 환경에서 배포하는 이미지의 버전를 입력해야 합니다. (총 2번) 언제 끝날지 모르는 도커 빌드, 푸시 시간이 끝나기를 기다려야 합니다. 도커 푸시 후, 서버에 접속해서 이미지를 전송 받아야 합니다. 해결책 = …

docker, nextjs 이미지 배포하기 - 1 (+쉘 스크립트)

프론트 개발자도 도커 이미지를 만들어야 할까? 1. 백엔드 개발자와 협업 백엔드 개발자가 JAVA, DB 등을 도커HUB 에 배포하면, 프론트엔드 개발자가 해당 이미지를 내려 받고 컴포즈 하는 방식으로 작업했습니다. 그런데 백엔드 개발자를 많이 만나보지는 않았지만, 같이 협업을 하다보면 ‘제 자리에서도 프론트 코드를 실행하고 싶어요’, ‘화면을 보면서 테스트 하고 싶어요’ 등등 백엔드 개발자의 요구 사항이 생겼습니다. 처음에는 도커가 왜 필요한지 몰랐기에 백엔드 개발자 자리에서 git clone node install env 파일 전달 os 가 달라서 생기는 오류 해결… 그래서 언제 되는거죠..? 이 모든 것을 진행하다가 결국 서버로 배포해서 확인을 했었습니다. 만약에 nextjs 를 도커 이미지로 만들었다면, 이런 불편함은 없었을 겁니다. 2. 운영환경의 빌드파일 버전 관리 이전 프로젝트에서 CI/CD 를 적용하기 위해 jenkins, github-action 을 사용했습니다. …

aws ec2에 github action 으로 프론트 자동 배포하기

github action ? jenkins 와 더불어 CI/CD 구축을 위해 사용됩니다. github 에서 가상환경을 제공해줍니다. 장점 CI 를 위한 추가 서버가 필요 없다는 게 큰 장점이었습니다. git hook 에 따라 배포를 실행할 수 있습니다. 단점 유료 계정이 아니라서 그런지 몰라도 빌드 시간이 오래걸렸습니다. jenkins 로 배포할 때 총 20초 정도 걸렸었는데, 2분 정도 소요됐습니다. (s3 업로드 까지) 시작하기 과정을 간단하게 요약한 글입니다 보다 상세한 내용은 해당 글을 보시는걸 추천드립니다. https://blog.bespinglobal.com/post/github-action-%EC%9C%BC%EB%A1%9C-ec2-%EC%97%90-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0/ 1. IAM 사용자 추가 github 코드를 s3 로 업로드하기 위해 인증된 사용자라는 검증하기 위해 사용됩니다. AWS - IAM > AWS 자격 증명 유…

Jenkins 자동 배포하기 (+github 연동)

포스팅 배경 Jenkins를 실무에서 왜 사용할까? 이전 직장에서 xshell, total commander 를 사용하여 수동으로 배포를 했었습니다. 상당히 위험한 순간도 많았고, 실수한 적도 많았습니다. 이에 대한 불편함을 느끼고, 현 직장에서는 자동 배포환경을 구축했습니다. 이로 인해 동료 개발자도 배포가 쉬워지는 장점을 느꼈습니다. 기억보단 기록 Jenkins 환경 구축을 4번했습니다. 잦은 장비 변경으로 인해 window, linux, mac, docker 등 각 OS에 모두 설치할 때마다 이전 과정이 기억나지 않았고, 많은 시간을 소비했습니다. 기록에 대한 필요성을 느꼈고, 저와 같은 불편함을 겪는 분들에게 도움이 되면 좋겠습니다. 순서 Jenkins 설치 및 계정 설정 Jenkins - github 계정 연동 설정 프로젝트 생성 프로젝트 - github repository 연동 설정 플러그인 설치, 설정(ex. node, publish over ssh) Build ste…