본문 바로가기

카테고리 없음

[Docker] 도커로 장고 배포환경 구축하기(Nginx+Gunicorn)

반응형

이번 포스팅은 도커, 도커컴포즈를 활용하여

장고 배포환경 구축하는 튜토리얼 입니다.

 

 

 

도커 + 도커컴포즈 + nividia도커 설치

- 아래 링크를 확인하면 자세한 설치 방법을 확인 할 수 있다

- 도커 설치 : https://soyoung-new-challenge.tistory.com/52

 

[Docker] Ubuntu 18.04 도커 시작하기

아래 튜토리얼은 도커/쿠바네티스를 활용한 컨테이너 개발 실전 입문 책을 바탕으로 작성 한 내용입니다:) 01. 도커 설치하기 $ 우분투는 apt 패키지 관리자를 사용, 먼저 패키지 목록 업데이트 $ sudo apt update..

soyoung-new-challenge.tistory.com

 

- Nvidia 도커 설치 : https://soyoung-new-challenge.tistory.com/54?category=857325

- 참고로 Nvidia 도커를 설치 하는 이유는, 도커 안에서 host의 GPU를 사용하기 위해서!

 

[Docker] 도커로 딥러닝 환경 구축하기

딥러닝 모델 학습/테스트 환경에 필요한 GPU, 주피터노트북 등 필요한 환경 구축에 관한 포스팅 1. 도커에서 GPU 사용하기 1> 기본 개념 - 기본적으로 Docker Image로 생성된 Container 내에서는, Host OS가 보유..

soyoung-new-challenge.tistory.com

 

- 도커 컴포즈 설치 : https://soyoung-new-challenge.tistory.com/73

 

[Docker-Compose] 도커 컴포즈 설치 및 사용

이번 포스팅은 도커 컴포즈 설치와 사용방법 등을 다룬 내용입니다. 1. 도커 설치 - 도커 컴포즈 설치 전, 도커를 설정하고 사용방법을 아래 포스팅을 통해 익힌다. - 도커 설치 포스팅 : https://soyoung-new-cha..

soyoung-new-challenge.tistory.com

이렇게 도커, Nvidia도커, 도커 컴포즈까지 설치하면 도커 사용을 위한 환경이 셋팅이 완료된다.

 

 

배포 위한 장고 프로젝트 구성

django rest framework

- 현재 만들어진 장고 프로젝트가 있다면 그 프로젝트에서 진행

- 장고 프로젝트가 만들어져 있지 않다면 아래 포스팅을 참고해서 장고 프로젝트를 생성한다

 

- 참고 포스팅 : https://soyoung-new-challenge.tistory.com/10?category=831257

 

Django_project 시작하기

Django_project Process # 가상 환경 활성화 (venv : 가상 환경 이름) activate venv # 장고 프로젝트 시작 django-admin startproject myproject # 장고 프로젝트 시작 후 소스트리 구조 확인 tree /f # 기본 생..

soyoung-new-challenge.tistory.com

- 테스트를 위한 용도이기 때문에 간단하게 프로젝트/앱 정도로 구성을 해놓으면 된다.

 

 

장고 프로젝트 안에서 도커 파일 생성

$ cd djago_procject[장고프로젝트_폴더]

- 장고 프로젝트 폴더 속으로 접근 한다 (여기를 base_dir로 지정)

- base_dir 에서 Dockerfile을 생성한다.

 

$ vi Dockerfile

FROM python:3.6.5

ENV PYTHONUNBUFFERED 1

RUN mkdir /django
WORKDIR /django

ADD requirements.txt /django/

RUN pip install --upgrade pip
RUN pip install -r requirements.txt

ADD . /django/

- 위와 같이 도커 이미지를 생성하기 위한 도커 파일을 생성한다.

requirements.txt 자동 생성하는 방법
- requirements.txt에는 설치되어야 할 파이썬 패키지의 이름와 버전이 명시되어있다
- 하나하나 작성하지 않고, 현재 설치되어 있는 상태 그대로 옮기고 싶다면 아래 명령어를 입력한다
- $ pip freeze > requirements.txt

- 여기까지 완료하면 장고가 동작할 수 있도록 하는 파이썬 기반의 이미지가 생성 된다.

 

 

도커 컴포즈 파일 생성

- 도커 컴포즈를 사용하여 Django와 Nginx를 동시에 실행시키고, DjangoNginx를 연결해주는 인터페이스인 Gunicorn도 함께 실행이 되도록 컴포즈 파일을 구성한다.

$ vi docker-compose.yml

version: '3.5'
services:
  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - .:/django
      - ./config/nginx:/etc/nginx/conf.d
    depends_on:
      - web
  web:
    build: 
      context: .
      dockerfile: Dockerfile
    command: gunicorn 장고프로젝트이름.wsgi:application --bind 0.0.0.0:8000
    volumes: 
      - .:/django/
    expose:
      - "8000"

- 위와 같이 도커 컴포즈 파일이 작성

- 현재 2개의 서비스가 도커 컴포즈에 작성되어 있다 (nginx, web)

 

$ docker-compose up -build

- 도커 컴포즈 파일 작성 후 처음 이미지를 생성하기 위한 명령

 

$ docker-compose up

$ docker-compose down

- 한번 이미지 빌드 후에는 위와 같이 도커 컴포즈 실행, 중지 명령을 사용하면 된다

반응형