Yobi를 docker에서 운영하기 위한 docker-yobi v0.8.1 업데이트

서론

최근 yobi는 Java8 지원과 play-2.3기반으로 v.0.8.1 업그레이드를 진행하였다. 또한 간단하게 설치하여 설정없이 바로 시작할 수 있는 풀패키지버전도 공개하였다. 더 많은 기능과 향상된 성능에 관하여 v0.8.0을 참조하면 알 수 있다. yobi가 업그레이드 됨에 따라 기존의 v0.7.x 기반의 docker-yobi를 v0.8.1로 도커 컨테이너 이미지 업그레이드를 진행하였다. 이 글에서는 변경된 docker-yobi의 상용법을 소개한다.

docker-yobi 클론

github에서 docker-yobi를 clone 한다.

git clone https://github.com/saltfactory/docker-yobi.git  

git clone docker-yobi

docker-yobi 파일

docker-yobi는 Dockerfile과 쉽고 편리하게 운영할 수 있도록 쉘 파일을 포함하고 있다.
- Dockefile : docker-yobi 이미지를 정의 - config.sh : docker-yobi에 관한 설정 정의 - build.sh : docker-yobi 이미지를 생성 - start.sh : docker-yobi 컨테이너를 실행 - stop.sh : docker-yobi 컨테이너를 중지 - rm.sh : docker-yobi 컨테이너를 삭제 - logs.sh : docker-yobi의 로그 확인

설정

config.sh 파일을 열어서 필요한 정보를 수정한다.

  • YOBI_HOME : 내 컴퓨터에 있는 Yobi 홈 디렉토리를 경로를 입력(기본 값은 현재 디렉톨리 안에 yobi 디렉토리)
  • DOCKERYOBINAME : docker-yobi 컨테이너의 이름을 지정
  • DOCKERYOBIPORT : docker-yobi 컨테이너의 외부 포트번호

만약 기존의 yobi를 사용하고 있다면 YOBI_HOME의 경로를 기존의 프로젝트 경로로 지정한다. YOBIHOMEconf/, yobi.h2.db, repo/, uploads/ 를 자동으로 읽어 사용하게 됩니다(yobi-0.8x 기반, yobi-0.7.x 버전은 yobi.h2.db 파일 마이그레이션이 필요하다.). 만약 새롭게 시작한다면 YOBIHOME에 지정한 디렉토리 안에 이 디렉토리와 파일들이 생성된다.

vi config.sh  
#!/bin/bash

YOBI_HOME="$(PWD)/yobi"  
DOCKER_YOBI_NAME="yobi-0.8.1"  
DOCKER_YOBI_PORT="9000"  

빌드

Dockerfile에 정의한 docker-yobi 이미지를 생성한다.

sh build.sh  

build

시작

config.sh에 정의한 docker-yobi 컨테이너를 실행한다.

sh start.sh  

만약 아무런 설정을 하지 않고 실행하게 되면 기본 YOBI_HOME 디렉토리를 발견하지 못해서 다음과 같은 메세지를 만나게 된다.

not found YOBI_HOME

./config.sh 파일을 수정하지 않으면 기본적으로 YOBIHOME 디렉토리는 docker-yobi를 clone한 디렉토리 안의 yobi/ 디렉토리로 지정이 된다. 이 곳에 yobi라는 디렉토리가 없어서 발생하는 메세지이다. 이곳에 yobi 디렉토리를 만들거나 새로운 디렉토리로 지정하면 된다. 예제를 위해서 /Users/saltfactory/shared/yobi-home에 새롭게 디렉토리를 만들고 YOBIHOME으로 지정한다.

setting YOBI_HOME

다시 sh start.sh 명령어로 docker-yobi를 실행하자.

이제 정상적으로 docker-yobi가 실행이 되었다. docker-yobi가 실행이되면 Yobi가 정상적으로 실행되어 YOBIHOME에 필요한 파일들을 만들게 된다. YOBIHOME 디렉토리에 ls 명령어로 파일이 만들어졌는지 확인해보자.

startup docker-yobi

브라우저를 열어서 Yobi가 정상적으로 실행되는지 확인해보자. host에 호스트 IP를 입력하면된다. 이 예제는 boot2docker를 사용하여 만들 것이라 boot2docker의 IP를 입력했다.

http://host:9000
open yobi

docker 프로세스를 확인해보자. config.sh에 설정한 정보대로 docker-yobi가 운영되고 있는 것을 확인할 수 있다. 우리는 기본정보 그대로 사용했기 때문에 PORT는 9000 그리고 NAME은 yobi-0.8.1로 실행되었다.

docker ps

로그확인

docker-yobi에 관련된 로그를 보고 싶으면 logs.sh 파일을 실행한다.

sh logs.sh  

`

현재 docker-yobi가 정상적으로 실행되었기 때문에 다음과 같은 로그를 확인할 수 있다.

logs.sh

중지

docker-yobi를 중지하고 싶을 경우는 stop.sh 파일을 실행한다. 이 파일은 config.sh에 정의한 docker-yobi 컨테이너를 중지시킨다.

repo/ stop docker-yobi

삭제

docker에서 컨테이너를 중지해도 완전히 삭제되는 것은 아니다. docker ps -a 명령어로 중지된 컨테이너를 확인할 수 있다.

uploads/ stoped container

docer-yobi 컨테이너를 완전히 삭제하기 위해서는 rm.sh 파일을 실행한다. 이 파일은 config.sh에 정의한 docker-yobi 컨테이너를 삭제한다. 그리고 다시 docker ps -a 명령어로 확인하면 docker-yobi 컨테이너가 완전히 삭제 된 것을 확인할 수 있다.

sh rm.sh  

sh rm.sh

결론

Yobi는 사내에서 SCM을 구축할 때 매우 매력적인 오픈소스이다. 커미터와 커뮤니터들의 적극적인 활동으로 이슈들이 빠르게 업데이트되고 있고 이젠 Java8과 Play 2.3 기반의 안정화되고 성능 좋은 버전으로 릴리즈가 되었다. 이런 Yobi를 docker 환경에서 간편하고 쉽게 사용하기 위해 Yobi 버전에 맞춰 docker-yobi를 업데이트했다. 무거운 ubuntu에서 debian 기반으로 업데이트했으며 Java8 기반으로 동작하도록 만들었다. docker-yobi 외부에서 yobi의 파일들이 저장될 수 있도록 YOBI_HOME 디렉토리 공유할 수 있도록 하였다. docker-yobi의 유연성을 위해서 docker-yobi의 컨테이너 이름과 포트번호를 변경하여 운영할 수 있도록 config.sh 설정 파일 추가하였고, 간편한 사용을 위해서 명령여 쉘 파일을 추가하였다. docker-yobi를 사용하여 docker 환경에서 좀 더 빠르고 간편하게 Yobi를 사용할 수 있을 것으로 기대한다.

docker-yobi를 업데이트하게된 이유는 v0.7 기반의 yobi를 사용하다 v0.8로 마이그레이션을 하면서 발생하는 문제를 해결하기 위해서였다. 다음은 v0.7에서 v0.8을 쉽게 마이그레이션 하는 내용을 소개하고 docker-yobi에 마이그레이션 쉘을 추가할 예정이다.

소스

참고

  1. http://www.webupd8.org/2014/03/how-to-install-oracle-java-8-in-debian.html