시놀로지의 Docker와 역방향 프록시, 서브도메인 연동을 통해 단기적으로 운영 테스트를 진행 중에 있습니다.
우선은 장점으로는 어떤 연구에 대한 목표/성과관리와 기반이 되는 데이터베이스를 공유하여 유연하게 구성할 수 있고, 기본적으로 에디터가 클립보드 이미지 붙여넣기가 지원되거나 편집이 자유로워 작성에 큰 불편함이 없었습니다. PDF로 내보내기시에, 타임스템프가 표시되기때문에 변조등에 대해서도 기본적인 역할을 할 수 있고, 기존 연구에서는 노션이나 에버노트와 같은 노트 툴에 저장했는데, 보다 전문적으로 관리할 수 있는 채널로서 기대하고 있습니다.
Synology Docker 패키지를 이용해 서비스를 구동하는 방법에 대해 알아보도록 하겠습니다.
순서
Synology Docker의 고급 설정
Docker 고급설정의 항목 기능 설명
dockercompose.yml 정보를 이용해 서비스 구성하는 방법
1. Synology Docker의 고급 설정
신규 컨테이너를 생성하면, 해당 Docker의 레지스트리에서 설명된 정의된 환경정보를 고급 설정의 내용에 입력 해야한다.
2. Docker 고급설정의 항목 기능 설명
일반설정 : 컨테이너 이름과 컨테이너 권한 및 리소스 사용 정보, 재시작 정보 등을 설정 하는 부분입니다.
볼륨(Volume) : 도커 컨테이너 내부의 파일을 NAS의 특정 폴더로 하기 위해 사용한다. 통상적으로 초기 이미지 외에 변경되는 파일 또는 폴더를 연결합니다. 아래의 이미지는 NAS의 /docker/lxqt 폴더를 컨테이너의 /home/ubuntu로 연결한다는 의미 입니다. 컨테이너 내부에서 작성되거나 액세스 하는 내용은 실제 NAS의 /docker/lxqt 폴더에 저장 됩니다.
포트 설정(Port Mapping) : 실제 서비스가 연결될 서비스 네트워크의 포트 정보로 도커 컨테이너의 외부 접근 네트워크 정보를 설정합니다. 아래의 이미지는 TCP통신으로 로컬 포트 localhost:13100로 접속시, 컨테이너 포트 6080으로 연결한다는 의미 입니다.
링크(Link) : 해당 컨테이너와 연결되는 Database와 같은 컨테이너의 링크정보를 입력합니다. 컨테이너가 연결되면, 별칭 설정을 이용해 컨테이너와 컨테이너 끼리의 연결성이 좋아집니다. 아래는 컨테이너 링크를 두어 연결하는 것에 대한 샘플 구성입니다. (실제는 연결되지 않음)
환경(Environment Variables) : 서비스 구동에 필요한, DB 연결정보 및 관리자 정보, 서비스 구동에 필요한 환경 정보입니다. 이를테면 DB 연결된 정보 등을 입력합니다. 아래의 이미지는 레드마인의 DB커넥션 정보를 입력한 부분이며, REDMINE_DB_MYSQL의 값이 db 인 부분은 위의 링크에서 DB의 컨테이너의 별칭을 db로 하고 있기 때문입니다.
환경 > 실행 명령 : 최초 도커 컨테이너 생성시 실행되는 명령입니다. 특정한 도커 이미지의 경우, 초기 설정이 필요한 경우 요구되기도 합니다.
3. dockercompose.yml 정보를 이용해 서비스 구성하는 방법
NextCloud 설치
NextCloud 의 dockercompose.yml를 이용해 구성해보도록 하겠습니다.
① service : 밑의 image: 를 보면 mariadb와 nextcloud 이미지가 필요한 것을 확인할 수 있습니다.
② 레지스트리에서 mariadb, nextcloud 의 이미지를 다운받습니다. (lastest로 다운받습니다.)
③ 이미지에서 각 이미지가 다운되면, 선택 후 실행합니다.
④ Mariadb 이미지를 실행하고, 일반 설정의 내용중 고급설정을 클릭하고, 입력하는 상세정보는 dockercompose.yml 파일을 참고합니다.
# Mariadb 고급설정
볼륨 : yml 파일의 13번째 행을 참고하여, NAS에 위치할 폴더를 선택(생성)해주고, 마운트 경로를 입력 합니다.
환경 : yml 파일의 15~18번 행을 참고로 하여 입력해줍니다.
환경 > 실행 명령 추가 : 명령어의 시작은 회색글씨로 표기된 부분을 참고 합니다. (이미지에 따라 다름) mysqld 로 시작하는 명령어와 yml 파일의 11번 행의 command 내용을 추가합니다. 명령어 입력 형식 오류가 발생시에는 앞뒤로 감싸주어 mysqld "--transaction....ROW"와 같이 입력해주세요.
⑤ mariadb 컨테이너 생성에 최종적으로 내용을 확인하고, 적용을 클릭합니다.
⑥ nextcloud 이미지를 실행하고, 일반 설정의 내용중 고급설정을 클릭하고, 입력하는 상세정보는 dockercompose.yml 파일을 참고합니다.
# Nextcloud 고급설정
링크 : yml 파일의 00째 행을 참고하여, 위에서 생성했던 mariadb를 선택하고 db라는 별칭을 입력합니다. (추후 환경 설정에서 db 라는 별칭을 사용합니다.)
포트설정 : yml 파일의 24번째 행을 참고하여, 외부로 연결되는 포트를 설정합니다. 이후 8000번 포트로 Nextcloud 페이지가 연결됩니다.
볼륨 : yml 파일의 27번째 행을 참고하여, NAS에 위치할 폴더를 선택(생성)해주고, 마운트 경로를 입력 합니다.
환경 : yml 파일의 30~33번 행을 참고로 하여 입력해줍니다. db 연결 정보로 mariadb에서 설정한 정보와 동일하게 입력해 줍니다.
⑦ nextcloud 컨테이너 생성에 최종적으로 내용을 확인하고, 적용을 클릭합니다.
※ 이때, 컨테이너를 실행하게되면, 링크로 연결된 mariadb 컨테이너를 자동으로 실행합니다.
⑨ http://(NAS의 IP):8000으로 접속해 웹페이지를 확인합니다.
트러블 슈팅
Nextcloud 컨테이너가 다운될 경우, 버전을 낮추어서 이미지를 다운 받으시기 바랍니다.
AH00141 오류발생의 경우 NAS 커널 또는 php버전 및 커널 이슈로 동작이 안되는 경우가 있는 부분으로 저같은 경우 21.0.0 으로 버전을 낮추어서 설정하니 정상 구동이 가능했습니다.
Mariadb 컨테이너가 다운될 경우, 커멘드를 지우고 실행해봐 주시기 바랍니다.
웹 페이지 접속에 문제가 있는 경우 역방향 프록시 등을 이용해 설정이 필요 할 수 있습니다.
안녕하세요. Synology NAS가 버전업이 되면서 더이상 지원해 주지 않는 패키지들이 많아지고 있는데요. 오늘은 그런 패키지들을 설치하고, 운영할 수 있는 Docker 기능에 대해 알아보도록 하겠습니다.
목적/목표
시놀로지 Docker 패키지에 대해 소개하고, 특징과 활용 방법 등을 소개합니다.
순서
Synology Docker란?
Synology Docker의 장점
메뉴(용어) 소개
기본적인 사용 방법
1. Synology Docker란?
Docker의 개요적인 설명을 하자면 복잡하기 때문에 Synology NAS 기준으로 쉽고 간략히 설명하자면, 시놀로지에서 지원하지 않는 응용패키지(레드마인, Gitlab, GLPI 등)를 구동할 수 있도록 해주는 GUI기반 응용 서비스입니다. 다만, Docker의 기본적인 사용법 및 구성, 용어, 개념 등을 이해해 두시면 해당 응용 패키지 사용에 도움이 될 것입니다.
레드마인(Redmine)은 오픈 소스 프로그램으로 웹 기반의 프로젝트 관리 와 버그 추적 기능을 제공하는 도구이다. 화면기반의 프로젝트 관리에 도움이 되도록 달력과 간트 차트를 제공하고 일정관리 기능을 제공한다. 또한 레드마인은 통합된 프로젝트관리 기능과 이슈추적, 여러가지 형상 관리 기능을 제공한다. (위키피디아)
[지원되는 기능]
다중 프로젝트 지원
유연한 역할기반 접근제어
유연한이슈추적기능
간트 차트와 달력기능 제공
알림, 문서, 파일관리기능 제공
이메일 알람기능
프로젝트별위키페이지 제공
프로젝트별 게시판 기능 제공
형상 관리소프트웨어와의 통합(SVN,Git, ...)
다중LDAP기반 인증 지원
다국어 지원
여러데이터베이스지원
플러그인 기능 지원
관련 모바일 앱
누구에게, 어떻게 쓰면 좋은 것일까?
레드마인은 위키피디아에서도 정의하고 있듯이 개발자 또는 SW개발을 위한 툴임에는 분명하다. 하지만, 어떤 일이던 프로세스가 있고, 처리하는 이슈들을 감안해 영업부터 기획/디자인에 이르기까지 전사에 도입했던 과거의 경험을 비추었을때 내부 정책을 어떻게 잡고, 어떻게 정리할 지만 명확하다면, 개인에서 부터, 소그룹 등에 이르기까지 정말 다양한 목적으로 활용이 가능할 수 있다라고 생각합니다.
#레드마인의 기본 활용
레드마인은 참여자가 어떤 일감을 등록하고, 완료되기까지의 이력을 관리하는 부분이 기본적인 내용입니다. 첫째로 프로젝트를 생성하고, 일감을 등록하고 담당자를 지정합니다. 이때 일감은 업무의 흐름에 따라 진척률 및 업무의 진행 상태를 기록하여 관리 될 수 있도록 되어 있습니다. (이때 업무의 진행 상태는 기본적으로 제공되는 신규>진행>해결>의견>완료 /거절 등의 절차로 되어있습니다만, 공동이 사용하는 만큼 익숙하게 바꾸는 것도 나쁘지 않다고 생각합니다.)
또한, 일감 뿐만아니라, 위키, 뉴스, 게시판 등등의 모듈을 설정하여 프로젝트 별로 참고할 사항들을 기록하여 관리 될 수 있도록 하고 있습니다.
#회사에서의 활용 경험
저는 업무적으로는 사내에 도입해서 프로젝트별로 일감을 관리해서 사용하고 있고, 정부 사업을 할 경우에는 담당자 별로 세부 진행 내용의 History를 보고형태로 작성하여 제출하거나, 제작된 앱의 QA과정에서의 활용을 해보았습니다. 레드마인에서 주요 의도하는 목적중 하나가 주어진 리소스별로 공정투입 시간과 비용 산출을 목적하는 생산성 관리까지 이어질 수 있는 부분이 있습니다만, 너무 기계적이고 우리나라 정서에 맞지않아 그 부분까지의 접근은 하지 않았습니다. (언젠가 해보고는 싶네요)
#지극히 개인적인 레드마인 활용
개인적으로도 별도로 레드마인을 구축하여 사용하고 있습니다. 구글/아이클라우드/드롭박스/다음클라우드/네이버 등에 개인적인 일부터 다양한 파일들을 생성하고 저장해온터라 나름은 정리를 깔끔히 한다고 믿어왔지만, 흩어져 있는 시간이 많이 흐르다보니 과거의 기록을 찾기에는 이미 이곳 저곳 흩어져 있어서... 좀처럼 쉽지 않았기 때문에 사건/사고 등을 기록하여 관리하는 것을 올해부터 기록하고 있습니다. (일감의 범주, 유형 등을 변형하여 활용)
레드마인은 오픈소스이기 때문에 쓰임에 따라 다양하게 쓸수 있고, 단순히 일감을 등록하고 관리할 수 있을 뿐만아니라, 위키, 플러그인을 이용하면, 에자일 보드, 드라이브 등 확장 가능한 범위가 다양할 수 있기 때문에 이를 감안하면 강력한 도구다 라고 감히 말하고 싶습니다.
어떻게 구성하고 쓰면 좋은가?
#최적의 버전
기본적으로 독립적으로 서버 시스템이나 NAS를 보유하고 있을 경우 패키지 또는 Docker 등을 활용하여 구성할 수 있습니다. 현재 레드마인의 가장 최신버전은 4.1 입니다. Synology NAS의 DSM 6.2.x 기준 설치되는 버전은 3.3.10으로 유용한 플러인 등을 고려했을때, 저 역시 이 버전이 가장 적절하다고 생각됩니다.
#플러그인 및 테마 설치
플러그인과 테마는 /docker/redmine 폴더의 themes 와 plugins 폴더에 넣어주고 패키지를 재실행 하는 것으로 확인 할 수 있습니다.
다만, 주의할 부분은 플러그인을 설치시에 가장 유의해야합니다. 이유는 레드마인은 Ruby의 환경에 의존성이 강하고, 플러그인 설치 때마다 레드마인의 전체 환경을 마이그레이션을 하는 과정이 있기 때문이며, 특히나, Synology NAS에서의 경우 도커 형태로 구성되기 때문에, 일반적인 네이티브 환경에서와 같이 폴더 제거 후 마이그레이션 하는 방법 만으로 해결이 어려운 상황도 발생될 수 있어서 주의가 필요합니다.
OpenProject와 Odoo가 있으며, OpenProject의 경우 Gantt기능이 좋아보여서 사용해보았는데, 레드마인과 일감 등록하고 관리하는 방법에 차이가 있다보니 깊이 써 보지는 못했습니다. Odoo의 경우 모듈형 솔루션으로 기능에 따라 PMS/ERP/CRM/HRM 으로 확대 가능한 장점이 있고, 기본기능은 무료이나 강력한 기능은 유료로 확장할 수 있는 특징이 있습니다. 두개의 솔루션은 차후 별도로 리뷰해 보도록 하겠습니다.