일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- vuejs
- 개발
- 알고리즘
- Algorithm
- cos pro
- issue
- 동적계획법
- 파이썬
- BAEKJOON
- DFS와BFS
- 안드로이드스튜디오
- 코테
- 백준
- django
- 안드로이드
- codingtest
- DFS
- 코드품앗이
- 동적계획법과최단거리역추적
- cos pro 1급
- DART
- AndroidStudio
- C++
- Vue
- android
- Flutter
- 분할정복
- 코딩테스트
- Python
- cos
- Today
- Total
Development Artist
[웹 서비스 A-Z][Deployment] #20 Docker 본문
이제 백엔드 장고 서버를 배포할 시간입니다.
장고의 경우 Docker를 사용해 컨테이너 환경으로 배포를 하도록 하겠습니다.
https://medium.com/swlh/what-exactly-is-docker-1dd62e1fde38 해당 링크는 Docker에 대한 글로써, 컨테이너 환경에 대한 전반적인 지식을 얻을 수 있을 것입니다.
https://jmcunst.tistory.com/292 해당 링크를 참고하셔서 Docker를 설치하시면 됩니다.
다시 한번 확인하지만, Centos 7 환경입니다.
Docker 설치가 완료되면, 명령어를 사용해보겠습니다.
위와 같이 뜬다면 정상적으로 동작하고 있는 것입니다.
Django 배포를 위한 Docker image를 만들겠습니다.
도커 이미지를 만들기 위해서는 ‘Dockerfile’이라는 파일이 필요합니다. Local의 pyCharm에서 프로젝트 최상위 경로에 ‘Dockerfile’을 만들고 아래 코드를 넣어줍니다.
FROM python:3
RUN apt-get -y update
RUN apt-get -y install vim
RUN mkdir /srv/django-server
ADD . /srv/django-server
WORKDIR /srv/django-server
RUN pip install --upgrade pip
RUN pip install -r requirements.txt
EXPOSE 8000
CMD ["python","./test_server/manage.py","runserver","0.0.0.0:8000"]
그리고, Django에서 배포를 위한 설정들을 해주도록 하겠습니다.
- requirements.txt 확인 및 업데이트.
- DB 설정 변경.
- DEBUG 설정 변경.
Requirements.txt
requirements.txt는 이미지를 만들때, 필요한 패키지들을 적어주는 곳입니다. Dockerfile 최상단을 보시면, ‘FROM python:3’이 보입니다. 이미지를 만들때, python:3 이미지를 불러와서 만들겠다는 것을 의미합니다.
python:3 은 기본적인 패키지들만 있기 때문에, 우리가 원하는 Django 서버를 위한 패키지들은 따로 설치를 해줘야 합니다. Dockerfile의 조금 더 아래 ‘RUN pip install -r requirements.txt’ 라는 부분에서 설치를 해주게 됩니다.
현재 설치된 패키지들을 확인하여 ‘requirements.txt’에다가 써줍니다.
DB Setting
이전 시간에 DB를 설치하고 DB Name과 User 등을 확인했었습니다.
settings.py에 가서 DATABASE 부분을 수정해주겠습니다.
Default로 로컬의 Postgresql을 바라보고 있습니다. 우리가 서버에 설치한 DB를 바라보게 하겠습니다.
해당 코드를 스테이징, 커밋 그리고 푸쉬까지 하고 django EC2(’jmcunst-delp-django’)에서 pull을 해줍니다.
# .git가 있는 경로에서
git pull origin master
자, 이제 Docker 명령어를 통해 image를 만들어 봅시다.
tag는 0.0.1로 하겠습니다.
태그를 통해 image 버전 관리를 할 수 있습니다.
docker build -t test_portal:0.0.1 .
# build 완료 후 image 생성 확인
docker images
이미지가 만들어 졌습니다. 이제 컨테이너로 서버를 올려봅시다.
docker run -d -p 8000:8000 --name portal test_portal:0.0.1
# 현재 올라와있는 docker 확인
docker ps -a
다음과 같이 올라와 있는 것을 볼 수 있습니다.
STATUS에 Exit 등 다른 상태가 보인다면 로깅을 통해 원인을 유추해볼 수 있습니다.
# 로깅
# docker logs [container name]
docker logs portal
이제 배포가 완료 되었습니다.
다음 시간에는 ALB를 통해 웹에서 백엔드 요청을 정상적으로 할 수 있도록 해보겠습니다.
감사합니다.
'Project_Personal' 카테고리의 다른 글
[Spring Boot, Mac] 프로젝트 초기 셋업 구축하기 (0) | 2023.08.16 |
---|---|
[웹 서비스 A-Z][Deployment] #21 ALB (0) | 2023.03.30 |
[웹 서비스 A-Z][Deployment] #19 Database (0) | 2023.03.28 |
[웹 서비스 A-Z][Deployment] #18 Nginx (0) | 2023.03.27 |
[웹 서비스 A-Z][Deployment] #17 Vuejs (0) | 2023.03.24 |