안녕하세요 😉
유유자적한 개발자 유로띠 입니다 😀
오랜만에 개발자로 돌아온 유로띠 입니다
👏👏👏
다들 아마 회사에서 이슈트래커 하나씩은 사용하실 거 같습니다
(이슈 없는 프로젝트는 없겠죠?)
이슈트래커 종류는 정말 많이 있습니다 😀
Atlassian에서 개발한 Jira
Ruby기반의 Redmine
기본적으로 Git 호스팅이지만 이슈트래커도 같이하고 있는
GitHub GitLab
이외에도
트렐로(Trello), You Track 등
정말 다양한 이슈트래커가 있지요 👍
저희도 기존에 JIRA를 이용하여 사용하였지만
워낙 비싸기도 하고 인원도 적다 보니 점차 무료에 눈길이 가기 시작했습니다 🤣
그래서 이참에 바꾸기로 결심하고
이슈트래커를 알아보기로 했습니다 💪
우리 회사의 기준은
무료인지
릴리즈 노트나 현재 진행형으로 관리가 잘되는지
온프레미스 환경에서 사용 가능한지
개발자가 아닌 엔지니어나 다른 사람이 사용해도 쉬운지
된다면 Git 호스팅도 되는지
고민 끝에 결정한 이슈트래커는 바로
이슈트래커
❝
Yona
❞
입니다
👏👏👏👏
이번 포스팅에서는
✅ 이슈트래커 요나(yona)
✅ yona 설치하기 (feat. docker)
✅ yona 실행하기
에 대해서 알아보겠습니다 👍👍
🎉 이슈트래커 YONA
📢YONA 란?
처음 들어보신 분들도 계실 거라 생각합니다
저도 이슈트래커를 알아보기 전까지는 몰랐습니다 🤣
우선 Yona에 대해서 간단히 살펴보겠습니다 🔎
Naver를 비롯하여 게임회사, 통신회사 고객센터, 투자사, 학교, 기업 등에서 실제 사용되고 있는
Real World Application이며
설치형 이슈트래커 및 Git 코드 저장소입니다
# yona 공식 홈페이지 인용
✅ Release Note
최근 5개의 Releases Note를 살펴보면
가장 최신 버전은 2020.02.24일로
yona 프로젝트에 대해 활발하지는 않지만 지속적인 버전업이 보입니다 🧐
✅ Issue
이슈에 대해서도 지속적으로 관리하는 모습이 보입니다 🧐
또한 yona 자체가 이슈 트래커이기 때문에 이슈관리도
yona에서 직접 하는 모습도 보입니다 ✌
yona demo에서 yona에 대해 기본적인 UI나 사용 방법을 배울 수 있습니다 😁
자 그럼 yona를 온프레미스 환경으로
구축해보도록 하겠습니다
👏👏👏
📢yona 설치하기
그전에 yona를 설치하기 위한
환경을 알려드리겠습니다
💡 HW 사양
JAVA가 기동 가능한 CPU면 작동합니다
최소 1GB이상 RAM이 필요합니다
💡 SW 사양
리눅스, 윈도우즈 등 사용하기 편한 걸 쓰시면 되지만 리눅스를 추천드립니다
필요한 프로그램은 JAVA 8 이상, MariaDB가 필요합니다
다양한 설치방법이 있지만
보다 간편하게 설치하기 위해 docker를 이용하여 설치해보도록 하겠습니다
docker 정보는 pokev25 GitHub를 참고하시면 됩니다 😊
혹시나 Docker를 잘 모르신다면 제가 올린 포스팅
[DOCKER] docker를 사용해 보자: 이미지와 컨테이너 #2
을 참고하면 도움이 되실 겁니다 ✌
✅ yona directory
pokev25 님의 GitHub에서 정보를 받으면 아래처럼 디렉토리가 보일 겁니다
yona
- Dockerfile
- docker-compose.yml
|
- data
|
- entrypoints
| - before.sh
| - bootstrap.sh
|
- mysql
|
- shell
| - config.sh
| - yona.sh
✅ Dockerfile
수정사항 없이 기존 Dockerfile 그대로 사용했습니다
FROM openjdk:8-jdk-alpine3.9
LABEL Description="This image is used to start the yona" maintainer="pokev25"
ARG YONA_VERSION=1.12.0
ARG YONA_BIN=yona-v${YONA_VERSION}-bin.zip
ARG YONA_DOWNLOAD_URL=https://github.com/yona-projects/yona/releases/download/v${YONA_VERSION}/${YONA_BIN}
## install package
RUN apk add --no-cache unzip bash tzdata
## Timezone
ENV TZ Asia/Seoul
## make work directory
RUN mkdir -p /yona/downloads
## install yona
RUN cd /yona/downloads && \
wget --no-check-certificate $YONA_DOWNLOAD_URL && \
unzip -d /yona/release ${YONA_BIN} && \
mv /yona/release/yona-$YONA_VERSION /yona/release/yona && \
rm -f ${YONA_BIN}
## set environment variables
ENV YONA_DATA "/yona/data"
ENV JAVA_OPTS "-Xmx2048m -Xms1024m"
## add entrypoints
ADD ./entrypoints /yona/entrypoints
RUN chmod +x /yona/entrypoints/*.sh
## yona home directory mount point from host to docker container
VOLUME /yona/data
WORKDIR /yona
## yona service port expose from docker container to host
EXPOSE 9000
## run yona command
ENTRYPOINT ["/yona/entrypoints/bootstrap.sh"]
✅ Docker-compose.yml
아래 yml 파일을 기존에 제공해준 부분에서 mariadb를 추가하였습니다
version: '2'
services:
yona:
build: .
image: pokev25/yona:1.12.0
restart: always
environment:
- BEFORE_SCRIPT=before.sh
- JAVA_OPTS=-Xmx2048m -Xms1024m
volumes:
- ./data:/yona/data
ports:
- "9000:9000"
links:
- yona_db
yona_db:
image: mariadb
container_name: yona_db
restart: always
volumes:
- /home/yona/mysql/data:/var/lib/mysql
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: yonapassword
MYSQL_DATABASE: yona
MYSQL_USER: yona
MYSQL_PASSWORD: yonapassword
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
데이터 보존을 위해 호스트 디렉토리와 컨테이너의 디렉토리를 공유시켜 줍니다
links:
yona 컨테이너에서 별명(alias)을 이용하여 MariaDB의 컨테이너를 접근하도록 설정합니다
💡 참고
기본적인 설정은 yona 컨테이너와 마운트 한 data/conf 디렉토리 하위에 application.conf 파일을 보시면
이메일 설정이나 접근 제한 여부, 소셜 로그인 설정 등 설정할 수 있습니다 😁
자세한 설정 방법은 yona application.conf 설명을 참고해 주세요
📢yona 실행하기
yona구축을 위한 docker 준비는 끝났습니다
yona를 실행해 보도록 하겠습니다
✅ docker-compose 실행
$ docker-compose up -d
✅ docker images 확인
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
pokev25/yona 1.12.0 5912356f8658 11 hours ago 221MB
mariadb latest 22851c7fe916 28 hours ago 407MB
openjdk 8-jdk-alpine3.9 a3562aa0b991 13 months ago 105MB
pokev25님이 만드신 yona:1.12.0 이미지와 온프레미스 환경에 저장소로 사용될 mariadb 이미지가 생성되었습니다
또한 yona 실행에 필요한 openjdk 이미지도 생성되었습니다
docker가 정상적으로 기동 되었는지 컨테이너를 확인해 보겠습니다 🧐
✅ docker 컨테이너 확인
$ docker ps -a
✅ yona 접속하기
드디어 이슈트래커 yona를 구성하였습니다. 9000번 port로 설정하였구요
http://localhost:9000을 통해 접속해보도록 하겠습니다
📢마무리
여러 프로젝트를 공개, 비공개로 만들 수 있고
저장소를 설정하여 코드를 주고받을 수 있습니다 😁
프로젝트 메인 화면입니다
새 이슈를 등록하여 담당자를 지정해서
이슈 관리를 진행할 수 있습니다 👍
각 이슈에 대해서 확인하고
이슈 작성은 Markdown 형식으로
작성할 수 있으며 Markdown 도움말이 있기 때문에 누구나
쉽게 작성할 수 있습니다 ✌
프로젝트의 서브 단위로서 마일스톤을
생성하여 각 이슈의 달성치도 알 수 있습니다
💡 참고 사이트