ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 시놀로지 DSM7에서 Docker로 SVN 서버 구축하기
    NAS 2021. 7. 31. 21:23

    DSM7에서 Docker로 SVN 서버 구축하기

     

    기존에 시놀로지 DS220+ DSM6의 패키지 센터에서 간단히 SVN서버를 다운받은 후 편리하게 쓰고 있었습니다.

    올해 DSM7이 Release되어 업데이트하려 하니, 더 이상 패키지 센터의 SVN서버를 지원하지 않기에 삭제를 하여야 했습니다.

    하여 도커를 이용하여 SVN서버를 구축하는 것을 계획하고, SVN 삭제 후 DSM7으로 업데이트하였으며, DSM7에서 도커로 SVN 서버를 띄우는 과정을 정리도 할 겸 포스팅하였습니다.

     

    * 아래 과정의 원리까지 이해하려면 Docker를 조금 알아야 할 수도 있지만, Docker를 알지 못해도 그냥 따라서 해보면 어렵지 않게 SVN서버를 띄우실 수 있을 겁니다.

     

     

    도커 설치

    만약 패키지센터에서 Docker를 설치하지 않았다면 먼저 설치해 주세요.

    시놀로지 DSM7에서 도커 설치하기

     

     

    도커 설치 후 실행하면 아래와 같은 메인화면이 나옵니다.

    (처음 설치하였을 경우에는 아래처럼 "실행 중인 컨테이너"는 나오지 않습니다. 저는 기존에 띄워놓은 게 있어서...)

    시놀로지 DSM7에서 도커 메인화면

     

     

    레지스트리에서 이미지 다운로드 및 추가

     

    레지스트리, 이미지, 컨테이너 등의 용어가 나오는데, 도커를 처음 접하시는 분들을 위해 익숙한 용어에 비유해서 설명드리겠습니다. (말 그대로 비유이며 정확한 정의는 아니기에 참고만 해주세요.)

     

    이미지는 "프로그램 설치 파일"이라고 생각하시면 됩니다.

    레지스트리는 "설치 파일을 다운로드 받을 수 있는 저장소"로 생각하시고

    컨테이너는 이미지가 설치되어 실행된 프로그램(즉 실행된 서버)으로 생각하시면 됩니다.

     

    우선 레지스트리에서 svn-server 이미지를 다운로드 받습니다.

     

    검색 박스에 "elleflorio"로 검색하시면 "elleflorio/svn-server"가 나옵니다. 더블클릭 후 아래 화면과 같이 태그 선택이 나오면 그래도 선택 버튼을 눌러줍니다.

     

    수 초 후에 이미지 메뉴를 보면 해당 이미지가 저장된 것을 보실 수 있습니다.

     

    SVN 서버 컨테이너 실행

    이미지 메뉴의 상단의 "실행" 버튼을 누릅니다.

    컨테이너의 이름은 아무거나 무방합니다. "고급설정"을 클릭합니다.

     

    비정상 종료가 되었을 때를 대비해서 "자동 재시작 활성화"를 체크합니다.

     

    다음은 포트를 설정합니다. 아래와 같이 입력합니다. (로컬 포트는 본인이 원하시는 아무거나 입력해도 됩니다.)

     

     

    로컬 포트는 외부에서 컨테이너 포트로 매핑할 수 있는 포트입니다.

     

    예를 들어 NAS의 80 포트는 이미 DSM의 HTTP 프로토콜 포트로 사용 중이라면

    외부에서 80 포트를 이용하여 SVN 컨테이너의 HTTP로 접근할 수가 없습니다.  (DSM의 HTTP로 연결되기에)

    하여 로컬 포트를 이용하여, SVN 컨테이너 내부의 80 포트에 연결하는 겁니다.

     

    즉 로컬 포트로 1180으로 지정하면, 아래와 같이 주소 연결 시 DSM이 아닌 도커 컨테이너인 SVN 서버의 HTTP로 연결됩니다.

    • http://{NAS-IP}:1180
    •  

    최종 적용을 클릭 후 다음을 클릭 > 그리고 완료를 클릭합니다.

     

     

    드디어 컨테이너가 실행되었습니다.

     

     

    SVN 서버 설정

    이제 SVN 서버의 웹 어드민에 접속하여 서버 설정을 진행합니다. 웹브라우저에서 아래 URL로 접속합니다.

    • http://{NAS-IP}:1180/svnadmin

     

    아래와 같이 설정하고 옆의 "Test" 버튼을 눌러 주세요.

    Subversion authorization file /etc/subversion/subversion-access-control
    User authentication file (SVNUserFile) /etc/subversion/passwd
    Parent directory of the repositories (SVNParentPath) /home/svn
    Subversion client executable /usr/bin/svn
    Subversion admin executable /usr/bin/svnadmin

    "save configuration"을 누르면 설정이 완료됩니다. 이제 로그인해 봅시다.

    초기 계정은 admin, 패스워드도 admin입니다.

    "login now"를 눌러 로그인합니다.

     

    상위 메뉴의 Session의 Change password를 눌러 꼭 비밀번호를 변경해 주세요.

     

    상위 메뉴의 Users > Add를 눌러 SVN에서 사용할 User를 등록해 줍니다.

     

    레파지토리도 생성해 줍니다.

     

    이제 권한 부여를 위해 "Access-Paths" > "Permmisions" 화면에서

    등록된 repo_test 저장소에 testuser1을 등록 후 Read & Write 권한을 부여합니다.

     

    여기까지 하고 윈도 tortoise SVN으로 연결을 해봅니다.

     

    프로토콜 및 URL을 "http://{NAS-IP 혹은 도메인}:1180/svn/repo_test" 로 연결하셔야 합니다. (포트는 도커 컨테이너 띄울 때 설정한 80 포트에 대한 로컬 포트를 지정합니다.

     

    * svn:// 프로토콜은 웹 관리자에서 설정한 권한이 적용되지 않습니다.

     

    Checkout 하면 아래와 같이 svn이 해당 폴더와 연결되었음을 확인하실 수 있습니다.

     

    SVN 커밋하기

    이제 커밋을 시도하면 계정과 패스워드를 입력하는 화면이 나옵니다.

     

    계정과 패스워드를 입력하면 아래와 같이 커밋이 잘되는 것을 확인할 수 있습니다.

     

    댓글

Designed by Tistory.