docker

DevOps

Nextjs Springboot Nginx Docker-compose

서론 우리 프로젝트의 front는 Nextjs로 되어있고, back은 Springboot로 되어있다. 앞에 proxy server로 Nginx를 두었다. 각 어플리케이션마다 도커 이미지로 만들어 하나의 명령어로 관리하고 싶었다. 그 과정에서 참 많은 일들이 있었다. 순 개발시간은 50시간이 넘어갔고, 기간으로는 2.5주 정도 걸린 것 같다. 여태까지의 실패하고 좌절하고 다시 시작하고 여러 사람들의 도움으로 완성하는 과정을 설명하겠다. 본론 사실 처음에는 Nginx가 무엇인지, 왜 붙어야하는지 이해하지 못했는데 같은 회사 동료분께서 보안은 절대적으로 중요하며 내부포트(3000, 8080)를 개방하는 것이 아니라 외부포트(80) 하나로만 통신을 해야한다고 말씀해주셔서 도입하게 되었다. 일단 지금 상태로는 b..

DevOps

Github Action CI/CD

사용하게 된 계기 CICD에는 여러가지 툴들이 존재한다. Github Action CI/CD Jenkins Travis CI + AWS CodeDeploy AWS CodePipeline Jenkins를 사용해 본 결과 AWS EC2를 오로지 Jenkins를 위해 인스턴스를 하나 사용해야한다. 위와 같은 단점으로 인해 나머지 Github Action CI/CD, Travis CI + AWS CodeDeploy, AWS CodePipeline 툴중에 고민을 해보았다. Travis CI + AWS CodeDeploy Github와의 연동성과 설치가 필요없다는 장점이 있지만, Private Repo일 경우 유로이다. (1달에 69$이다.) 유료여서 배제하였다. AWS CodePipeline AWS 하나로 관리가..

DevOps

SpringBoot __& Docker & DockerHub & EC2 & GitHub & JenkinsCI/CD__

Architecture대략적인 과정Local에서 Github에 푸시한다.Github의 webhook을 이용하여 jenkins에 전송한다.jenkins에서 Github의 코드를 받고 빌드, 테스트를 진행한다.받은 코드 중 Dockerfile을 이용하여 이미지를 빌드하고 Docker hub에 푸시한다.또한 받은 코드 중 deploy.sh 파일을 jenkins에 설정한 운영용 EC2 서버로 전송하고 실행을 한다.deploy.sh 파일에는 가동중인 docker를 중지 및 삭제를 하고 Docker hub에 올려져 있는 docker image를 받아옵니다.받아온 이미지를 docker run 시켜 SpringBoot 프로젝트를 띄운다.SpringBoot CodeSampleController : 간단한 테스트를 하기 ..

DevOps

Docker AWS EC2 deploy

대략적인 과정dockerfile을 build해서 docker image 파일을 생성한다.docker image 파일을 docker hub에 push한다.aws ec2 서버에 docker hub에 존재하는 docker image 파일을 pull 받아온다.docker run 명령어를 통해 docker image 파일을 실행한다.실행 과정DockerFile이라는 명으로 root directory에 추가한다.FROM amazoncorretto:17 ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]intellij에 terminal에서 ./gradlew build -x test를 입력해준다.-x te..

devtaeyun
'docker' 태그의 글 목록