LearnRun
Synology DSM 7에서의 Docker + Django 세팅 (2) 본문
◈ 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 등을 사용하는 방법에 대해서도 다뤄보려고 합니다.