docker-compose 를 이용하여
개발환경 구축하기 ( feat. vagrant )
SK planet Data Infrastructure
김 용 휘
( http://ggoals.tistory.com/ )
고오오오급 개발자
New 개발자
고오오오급 개발자
New 개발자
개발환경 셋팅 좀 해주세요.
Tomcat, MySQL, Redis,
Node .... 등등
깔아주시면 돼요.
고오오오급 개발자
New 개발자
넵!
완료했습니다!!
고오오오급 개발자
New 개발자
이건 어떻게 깔아요?
여기 에러 메시지 좀 봐주세요..
버전은 x.x 로 해도 되요?
잘돼서 배포 했더니 에러나요..
새로오신 분도 셋팅좀 해주세요!
말씀하신대로 했는데 안돼요
디버깅은 어떻게 해요?
고오오오급 개발자
New 개발자
이건 어떻게 깔아요?
여기 에러 메시지 좀 봐주세요..
버전은 x.x 로 해도 되요?
잘되서 배포 했더니 에러나요..
새로오신 분도 셋팅좀 해주세요!
말씀하신데로 했는데 안되요
디버깅은 어떻게 해요?
How??
Docker 란?
Docker-compose 란?
$ docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...]
I am container!
$ docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...]
$ docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...]
$ docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...]
$ docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...]
$ docker run [OPTIONS] IMAGE_NAME [COMMAND] [ARG...]
도커 컴포즈는
Multi-container
를 돌리기 위한 Tool 이다.
------------------------------ web 컨테이너
------------- redis 컨테이너
$ docker-compose up
- Development environments
- Automated testing environments
- Single host deployments
- using in docker swarm
ㅁ 일반적인 사용 케이스
- Development environments
- Automated testing environments
- Single host deployments
- using in docker swarm
ㅁ 일반적인 사용 케이스
기존 프로젝트에 docker-compose 적용 해보기
1. UI Project ( Application Context : "/" ) - Spring MVC
2. API Project ( Application Context : "/api" ) - Spring MVC
3. Admin Project ( Application Context : "/admin" ) - Spring MVC
Client ( / )
Api ( /api )
Admin ( /admin )
WAS ( Tomcat )
Database
( MySQL )
Client ( / )
Api ( /api )
Admin ( /admin )
WAS ( Tomcat )
Database
( MySQL )
1단계 : Dockerfile 만들기 ( MySQL )
1단계 : Dockerfile 만들기 ( Tomcat )
2단계 : docker-compose.yml 만들기
MySQL Dockerfile 위치
Tomcat Dockerfile 위치
3단계 : web property 파일 수정하기
3단계 : web property 파일 수정하기
1단계 : Dockerfile 만들기 ( MySQL )
MySQL
1단계 : Dockerfile 만들기 ( MySQL ), ( Tomcat )
MySQL
Tomcat
1단계 : Dockerfile 만들기 ( MySQL ), ( Tomcat )
MySQL
Tomcat
2단계 : docker-compose.yml 만들기
1단계 : Dockerfile 만들기 ( MySQL ), ( Tomcat )
MySQL
Tomcat
2단계 : docker-compose.yml 만들기
3단계 : web property 파일 수정하기
127.0.0.1:3306 !!!
??????
1단계 : Dockerfile 만들기 ( MySQL ), ( Tomcat )
MySQL
Tomcat
2단계 : docker-compose.yml 만들기
3단계 : web property 파일 수정하기
registration-database:3306 !!!
!!!!!!
4단계 : docker-compose up
End
고오오오급 개발자
New 개발자
고오오오급 개발자
New 개발자
$ docker-compose up
해주세요
시 연
5단계 : debugging 셋팅 ( Intellij )
5단계 : debugging 셋팅 ( Intellij )
Vagrant 란?
Virtual Box 를 쓰면...
Virtual Box 를 쓰면...
Virtual Box 를 쓰면...
Virtual Box 를 쓰면...
Vagrant
Provisioning
etc...
Providers
기존 프로젝트에 vagrant 적용 해보기
Client ( / )
Api ( /api )
Admin ( /admin )
WAS ( Tomcat )
Database
( MySQL )
1단계 : Vagrantfile 만들기
1단계 : Vagrantfile 만들기
2단계 : setup.sh, startup.sh 작성
setup.sh
1. Java 8 을 설치
2. Tomcat 8.0.x 를 설치
3. MySQL 5.6.x 를 설치
startup.sh
1. Tomcat, MySQL run !
3단계 : vagrant up
End
고오오오급 개발자
New 개발자
고오오오급 개발자
New 개발자
$ vagrant up
해주세요
시 연
Docker-compose vs Vagrant
가벼운걸 원한다면
가벼운걸 원한다면
docker-compose
개발환경에서의 셋팅을 Deploy 에 써먹고 싶으면
개발환경에서의 셋팅을 Deploy 에 써먹고 싶으면
docker-compose
이미 있는 docker images 들을 이용하고 싶다면
이미 있는 docker images 들을 이용하고 싶다면
docker-compose
IP:port 로 직접 접근해야 한다면
Docker for Mac 은 docker host 에서 container 에 ping 을 못날려요 ㅠㅠ
IP:port 로 직접 접근해야 한다면
172.18.0.2
MySQL
IP:port 로 직접 접근해야 한다면
172.18.0.2:3306 !!!
MySQL
?????
IP:port 로 직접 접근해야 한다면
127.0.0.1:3306 !!!
MySQL
!!!!
IP:port 로 직접 접근해야 한다면
Docker for Mac 은 docker host 에서 container 에 ping 을 못날려요 ㅠㅠ
vagrant
File R/W 가 많은 경우 에는
File R/W 가 많은 경우 에는
vagrant
섞어 쓰고 싶은 경우에는...?
vagrant
Real Server
Deploy
Tomcat
MySQL
Tomcat
MySQL
섞어 쓰고 싶은 경우에는...?
그래도 아마 가장 중요한건...
편한거 쓰세요옹
Tech * People + a >= Time ?
Q & A
docker-compose 를 이용하여 개발환경 구축하기 ( feat. vagrant )
By Yonghwee Kim
docker-compose 를 이용하여 개발환경 구축하기 ( feat. vagrant )
- 22,299