LearnRun

Synology DSM 7에서의 Docker + Django 세팅 (2) 본문

Synology(NAS)

Synology DSM 7에서의 Docker + Django 세팅 (2)

PROMPT_ 2023. 1. 20. 05:47

◈  Contents

     

     

     

    본 글에서는 컨테이너 내부에 설치한 Django로 접속할 수 있게 설정하는 과정을 소개합니다.

     

     

     

    컨테이너 포트 설정

    - 이전 글을 잘 따라왔다면, django_test라는 이름으로 컨테이너가 가동 중일 것입니다.

    - 우측의 스위치를 눌러 컨테이너를 종료해주시고, 해당 컨테이너를 선택한 후 상단의 편집을 눌러주세요.

     

    - 편집 창에서 상단의 포트 설정 탭을 눌러주시고, 포트를 추가합니다.

     

    - Docker 외부에서 1234 포트로 접속하면, 내부의 8080포트로 접속 가능하게 만들어줍니다.

    - 1234는 예시입니다. 과정을 잘 소화하셨다면 나중에 잘 바꿔 쓰시면 됩니다.

    - 설정을 완료한 후, 컨테이너를 가동합니다.

     

     

    Django 프로젝트 내 설정

    - 이전 과정을 그대로 따라오셨다면, docker/django_test 내에 "env" 폴더와 "project_test" 폴더가 있을 것입니다.

    - "project_test" 폴더로 들어오시면 "project_test" 폴더가 하나 더 있습니다. 그 안에서 setting.py 파일을 찾습니다.

    - setting.py를 메모장, vscode, pycharm 등의 다른 에디터로 열어주시면 됩니다.

     

    - Synology의 아이피 주소가 예를 들어 192.168.0.2 라고 하면, 

    - ALLOWED_HOSTS = [] 를, ALLOWED_HOSTS = ["192.168.0.2"] 로 변경하고, 저장해주시면 됩니다.

     

     

    컨테이너 가동 및 Django 서버 시작

    - 컨테이너를 더블클릭하여 터미널로 다시 들어옵니다.

    입력 명령어

    • cd home
    • . env/bin/activate
    • cd project_test
    • python manage.py runserver 0:8080

    - 명령어를 순차적으로 입력해주시면, 서버가 실행됩니다.

     

     

    접속

    - 주소창에, <NAS IP>:<PORT> 를 입력해주시면, 정상적으로 접속이 됩니다.

    - 위의 예시로 들면, 192.168.0.2:1234이 되겠습니다.

     

    - 만약, 외부망에서의 접속을 필요로 하실 경우 포트포워딩이 필수입니다.

    - NAS IP를 대상으로 원하시는 외부 포트와 내부 포트 1234를 엮어 포트포워딩 해주신 후,

    - 브라우저를 통해 <공유기 외부아이피>:<설정한 외부 포트> 로 접속하시면 문제없이 동일한 페이지를 마주하실 수 있습니다.

     

     

    추가) 컨테이너 부팅 시 명령어 자동 실행

    - 컨테이너 옵션에 자동으로 재시작되게끔 체크를 해 두었지만,

    - 결국 django를 가동하기 위해서는 터미널에서 명령어를 입력해야 합니다.

    • apt install vim
      vim 에디터를 설치합니다.

    • cd /root
      root 경로로 이동합니다.(절대경로)

    • vim .bashrc
      bashrc 문서를 열람합니다.

    - "i"를 입력하면 수정 모드로 진입할 수 있습니다.

    - 커서를 문서 맨 끝으로 옮겨, 아래 내용을 입력합니다.

    • cd home
    • . env/bin/activate
    • cd project_test
    • python manage.py makemigrations
    • python manage.py migrate
    • python manage.py runserver 0:8080

    ESC를 눌러 수정을 끝낸 후, :wq 를 입력, Enter로 확정하여 저장, 종료합니다.

    이후 컨테이너는 매 시작마다 해당 명령어를 실행합니다.

     

     

    마치며

    이정도만 사용하셔도, 간단히 SOHO 레벨에서 사용할 수 있는 페이지 가동이 가능합니다.

    큰 부하도 없고, 외부 접속까지 닫아두면 단순한 툴로써 소규모로 사용하기에도 나름(..) 괜찮습니다.

     

    하지만 이 상태 그대로 규모를 키우기 시작하면, 성능/보안에 관한 이슈가 점점 드러나기 시작합니다.

    그래서, 차후 작성할 포스팅에서 DB, NGINX, WSGI 등을 사용하는 방법에 대해서도 다뤄보려고 합니다.

     

    ‌ ‌ ‌
    Comments