![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/btHeNj/btsEWAhkQwZ/scZGaR1fk3iBUXkDeSaYq0/img.png)
https://sh970901.tistory.com/136 gitlab runner docker in docker 구조 대표적인 CICD(Continuous Integration/Continuous Delivery) 도구들 (gitlab runner, github action, jenkins 등) 이 있지만 이 글에서는 gitlab runner를 사용해 구축하는 과정에서 겪었던 이슈와 해결, 궁금증 대한 정리를 sh970901.tistory.com 상단 포스팅에서 도커 환경의 CI 구성에 대해 간략하게 설명했으니 참고하면 좋을 듯 하다. 이번 포스팅에서는 어떻게 Host와 Gitlab-Runner, 그리고 Runner의 executor Container들이 .m2를 캐싱시킬 것인가에 대해서 작성하려고 한..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mtz20/btsD2I1D2O9/ju26SXQwkKWEfGc3D3hIK1/img.png)
대표적인 CICD(Continuous Integration/Continuous Delivery) 도구들 (gitlab runner, github action, jenkins 등) 이 있지만 이 글에서는 gitlab runner를 사용해 구축하는 과정에서 겪었던 이슈와 해결, 궁금증 대한 정리를 담아보려고 한다. 개발관련된 툴들을 docker compose로 관리하기 위해 호스트는 하나의 EC2에서 진행하였고 따라서 gitlab runner를 컨테이너 환경에서 실행하였다. 기본적인 구축 셋은 다른 사람들의 예시가 많으니 참고해도 좋고 문서에 내용을 그대로 진행해도 좋다. https://docs.gitlab.com/runner/install/docker.html Run GitLab Runner in a co..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/KVmzY/btrMxTHct4i/mNPphp6MaSAk1Flmw4xXc1/img.png)
각각의 컨테이너에서 요청이 들어오면 Nginx가 SpringBoot에게 넘기고 DB가 필요하면 MariaDB에게 부탁하는 이상적인 형태로 도커라이즈를 진행해보려 한다. 이전에는 DB를 따로 설치해서 사용하였는데 이번에는 DB는 MariaDB 도커 이미지를 실행시키려고 한다. 기존에 MariaDB가 설치되어 있다면 삭제 해주도록 한다. MariaDB 삭제 sudo yum remove mariadb sudo rm -rf /var/lib/mysql 잔존 데이터 삭제 sudo rm -rf /etc/my.cnf.d* 잔존 설정파일 삭제 다음은 기본적으로 만들어져 있는 MariaDB 이미지를 실행한다. MariaDB 이미지 실행 https://hub.docker.com/_/mariadb # 컨테이너 실행 docke..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cCSENT/btrMy1xMObC/6v9YJ79Yb1dx7OpEAUHejk/img.png)
https://sh970901.tistory.com/62 리눅스에서 DB 사용 앱을 도커라이즈1(172.17.0.1 이 무엇인가 ) 기본 프로젝트 셋팅 => https://github.com/sh970901/dockerDB article 회원 엔티티를 생성하고 기본 값으로 두개의 데이터를 넣었다. 정상적으로 셋팅이 되었다면 /getList에 접근하였을때 article의 정보를 jso.. sh970901.tistory.com 이전에 github에서 프로젝트를 받아 build하는 작업까지 진행하였다. DB 설정 문제때문에 이를 해결하는데 성공하였다. 이번에는 프로젝트를 정상적으로 수행해보도록 하자. Dockerfile 생성 빌드에 성공하였으니 이제 도커파일을 만든다. 도커파일에 관련해서는 이전 포스팅한 내용..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/M0Hc4/btrMktbA34O/WEhVimDx2XcTTcuzUKCCkk/img.png)
기본 프로젝트 셋팅 => https://github.com/sh970901/dockerDB article 회원 엔티티를 생성하고 기본 값으로 두개의 데이터를 넣었다. 정상적으로 셋팅이 되었다면 /getList에 접근하였을때 article의 정보를 json형식으로 출력한다. 실행이 잘된다면 이제 git clone으로 리눅스 환경에서 위의 프로젝트를 받는다. chmod 744 gradlew 로 gradle 실행에 대한 접근권한을 부여한다. .gradlew clean build로 jar 파일을 생성한다. 이 과정에 대해서는 https://sh970901.tistory.com/60에서 관련 포스팅하였다. build 과정에 실패하였다. 이유가 무엇일까? build를 하면 스스로 테스트를 진행한다. DB가 없기 때..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/5fmCF/btrMmhnQygZ/kLJErTxwewEkss2Wg6mNbk/img.png)
이번에는 도커를 활용해 스프링부트 앱을 사용해보려고 한다. 도커 이미지 파일을 생성하고 실행해보자 이전 도커 없이 spring boot 프로젝트 실행하기 https://sh970901.tistory.com/60?category=958061 리눅스에서 스프링부트 앱 빌드하여 실행하기 리눅스에 git을 활용하여 스프링 프로젝트를 pull or clone 받아서 실행한다. 로컬에서 스프링 프로젝트를 만든 후 github에 올린다. https://start.spring.io/ 프로젝트를 생성하거나 기존에 프로젝트를 사 sh970901.tistory.com gradle => JDK => 소스를 컴파일하면 => jar 파일(실행 파일 + 톰캣)이 생성 사실 (jar파일 + java)만 있으면 모든 실행환경이 조성된..