업무 때문에 여기저기 (주로)IT업체를 방문해 보면 프로젝트 관리 또는 이슈관리 시스템으로 Jira(지라)를 사용하는 경우를 많이 보게된다. 하지만 난 “보기”만 했지 직접 “설치”를 해본적은 없다. 직접 설치하고 사용자 계정과 프로젝트를 만들고 이슈 처리 절차를 정의해본 경험이 없다는 얘기다.
그래서 이번에 시놀로지 NAS의 Docker에 Jira를 설치해보기로 했다.
먼저 Jira Home 디렉토리 만들기
먼저 Jira 설치 시 홈디렉토리 생성 폴더로 마운트 해줄 “Atlassian” 이라는 디렉토리를 파일 스테이션의 docker 디렉토리 아래에 만들어 준다.

JIRA 도커 이미지 다운로드
시놀로지 NAS의 DSM에서 Docker 관리자를 실행하고 아래 화면처럼 atlassian-jira 를 검색해 다운로드 받는다.

가장 최근 버전으로 다운로드 받는다. 모두 다운로드 되면 아래와 같이 이미지 목록에 보이게 된다.

Jira 컨테이너 생성하고 실행하기
앞 화면처럼 “이미지” 목록에 Jira 다운로드가 완료되면 더블클릭 또는 이미지 선택 후 실행 버튼을 눌러 컨테이너 생성을 시작한다.

컨테이너의 이름을 Atlassian-JIRA로 정하고 “높은 권한을~~” 을 체크하고 (편하지만 보안 상 권하지 않음) “고급 설정” 버튼을 누른다.
“고급 설정”에는 아무런 설정을 체크하지 않는다.

다음 “볼륨”에는 다음과 같이 마운트 경로를 매핑해준다.

“네트워크”는 Docker 호스트와 동일한 네트워크 사용을 체크해줬다.

“환경”에서는 특별히 바꿔줄 것은 없다. JIRA_HOME이 컨테이너 외부 디렉토리가 마운트 되는 경로 아래에 jira로 되어 있다.

“적용” 버튼을 클릭하여 컨테이너 생성 화면으로 돌아간다.

“다음” 버튼을 누른다. 환경 설정의 요약을 보여준다.

“완료” 버튼을 눌러 컨테이너를 생성한다.
Docker 관리자에서 컨테이너 메뉴를 선택하면 새로 생성된 Atlassian-JIRA 라는 컨테이너가 실행중임을 알 수 있다.

참로고… JIRA는 기본적으로 MariaDB를 지원하지 않는다. MariaDB를 사용하는 방법도 있는 것 같은데… 귀찮아서 그냥 MySQL 5.7을 도커로 설치했다. .MariaDB를 설치하는 것과 동일한 과정을 거치면 되는데… 마지막 단계의 환경 변수로 MYSQL_ROOT_PASSWORD 만 바꿔서 컨테이너를 생성하면 된다.
Jira Setup을 위한 MySQL 환경 설정하기
Jira를 설치하다보면 MySQL 등 RDBMS를 저장소로 사용할 수 있는데… MySQL의 기본 환경설정으로는 설치가 되지 않는다. 미리 MySQL의 환경설정을 변경해주어야 한다.
이 변경은 my.cnf 에서 할 수 있는데… 다음과 같은 my.cnf 파일을 만들어 MySQL을 컨테이너로 설정 시 conf.d 디렉토리를 외부로 마운트 하도록 한 디렉토리에 업로드 한 뒤 MySQL 컨테이너를 재실행해주면 된다.

이 my.cnf 파일은 개행문자 오류가 발생할까 싶어 윈도에 설치되는 vim 명령으로 만들었다. Jira의 설치 도움말 페이지에서 요구하는 MySQL 5.7의 환경 설정값은 다음과 같다.
[mysqld]
default-storage-engine=INNODB character_set_server=utf8mb4 innodb_default_row_format=DYNAMIC innodb_large_prefix=ON innodb_file_format=Barracuda innodb_log_file_size=2G |
위의 내용을 my.cnf 파일로 저장하고 다음과 같이 DSM의 파일스테이션에서 docker/mysql579/conf.d 에 업로드 한다.

docker/MySQL579/conf.d 는 MySQL 5.7.9를 도커로 설치할 때 /etc/mysql/conf.d 에 마운트 되도록 환경 설정해준 호스트의 디렉토리다.
이 파일을 업로드 한 뒤 Docker 관리자에서 MySQL 컨테이너를 중지했다 다시 시작한다.
다음은 Jira 컨테이너에서 사용할 MySQL의 사용자 계정과 DB를 생성해야 한다. MySQL 컨테이너에 DB 접속도구를 통해 root 계정으로 접속한 뒤 다음의 SQL 차례대로 한 라인씩 실행해준다.

위의 SQL문은 다음과 같다.
use mysql;
CREATE USER ‘jirasvc’@’%’ IDENTIFIED BY ‘**비밀번호**’ PASSWORD EXPIRE NEVER; CREATE DATABASE jiradb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; GRANT ALL PRIVILEGES on jiradb.* TO ‘jirasvc’@’%’; FLUSH PRIVILEGES; |
계정과 DB가 모두 정상적으로 생성되었다면 .Jira Setup 을 진행한다.
JIRA 셋업하기
다음 부터는 Jira 설치 웹페이지를 보면서 작업을 진행하면 된다. 시놀로지 NAS의 DSM에 웹스테이션 등을 설치할 필요는 없다. 그냥 시놀로지 NAS의 DSM 접속에 사용하는 URL에 포트번호만 8080으로 변경해 주면 된다.
다음과 같이 말이다. 아래의 경우 브라우저에 192.168.219.100:8080 을 입력해 접속한 Jira setup 화면이다.

I’ll set it up myself 을 클릭해 선택하고 아래의 Continue to MyAtlassian 버튼을 누른다.
Database setup에서 My Own Database를 선택하고 아래에서 MySQL 5.7을 선택한다. 그리고 접속정보를 다음과 같이 입력한다.

MySQL의 환경을 요구사항에 맞추지 못하면 에러가 난다. “Next”를 클릭한다.
어플리케이션의 타이틀을 비롯해 몇가지 설정을 한다.

“Next”를 누른다.
이제 라이센스를 준비해야 한다. 라이센스 생성에는 Server ID가 필요하다.

다음과 같이 라이센스 키를 만들어 위 화면과 같이 입력한다.
Jira Demo 라이센스 만들기
설치 버전 Jira는 라이센스가 필요하다. Jira는 예전 설치버전 판매에서 클라우드 서비스로 무게중심을 옮긴 듯 하다.
일단 Atlassian의 홈페이지에 회원가입을 하고 https://my.atlassian.com/product 에서 다음과 같이 1개월 무료 라이센스를 발급받는다.
라이센스를 발급받기 위해서는 Jira setup 과정에서 표시해주는 Server ID를 입력해야 한다.

라이센스를 입력하고 “Next” 버튼을 누른다.
Jira관리자 계정을 만든다.

이메일 셋업하기.

로그인 하라고 한다.

끝..!!
Jira 관리자 계정으로 로그인하고 프로젝트를 만들든 뭐든 할 수 있다.
이 단계가 되면 MySQL과 Jira 컨테이너의 상태는 다음과 같다.

Jira가 2.27 GB, MySQL이 3.49 GB의 램을 사용한다. 시놀로지의 램은 최소 10 GB는 되어야 한다.
#jira #시놀로지 #DS220+ #docker #mysql