"장고 도커를 이용한 배포(Nginx, Gunicorn)"의 두 판 사이의 차이

Pywiki
둘러보기로 가기 검색하러 가기
(새 문서: == 개요 == 파이썬부터. == 사전작업 == {| class="wikitable" |+ !과정 !설명 !방법 |- |requirements.txt 제작 |해당 환경에서 다음 명령을 진행하자. |pip...)
 
 
8번째 줄: 8번째 줄:
 
!설명
 
!설명
 
!방법
 
!방법
 +
|-
 +
|gunicorn 설치
 +
|
 +
|pip install gunicorn
 
|-
 
|-
 
|requirements.txt 제작
 
|requirements.txt 제작
24번째 줄: 28번째 줄:
 
== 파이썬 도커파일 제작 ==
 
== 파이썬 도커파일 제작 ==
 
확장자 없이 Dockerfile을 제작한다.<syntaxhighlight lang="dockerfile">
 
확장자 없이 Dockerfile을 제작한다.<syntaxhighlight lang="dockerfile">
FROM python:3.6.0-alpine  # 사용하고 싶은 버전을 쓰자.
+
# 사용하고 싶은 버전을 쓰자.
WORKDIR /app  # 명령이 실행될 기본 경로
+
FROM python:3.6.0-alpine   
ENV PYTHONDONTWRITEBYTECODE 1 # .pyc 파일은 만들지 않는다.
+
# 명령이 실행될 기본 경로
ENV PYTHONUNBUFFERED 1 # 파이썬 로그 버퍼링 없이 즉각출력.
+
WORKDIR /app  
COPY ../ /app  # 상위 경로의 파일들을 컨테이너 안의 /app 으로 옮긴다.
+
# .pyc 파일은 만들지 않는다.
 +
ENV PYTHONDONTWRITEBYTECODE 1
 +
# 파이썬 로그 버퍼링 없이 즉각출력.
 +
ENV PYTHONUNBUFFERED 1
 +
# 현재 경로의 파일들을 컨테이너 안의 /app 으로 옮긴다.
 +
COPY ./ /app 
 
RUN pip install --upgrade pip
 
RUN pip install --upgrade pip
RUN pip install --upgrade -r requirements.txt
+
RUN pip install -r requirements.txt
 
</syntaxhighlight>
 
</syntaxhighlight>
  
43번째 줄: 52번째 줄:
 
         command: gunicorn --bind 0:8000 config.wsgi:application  # wsgi 파일 위치에 따라 다르게.
 
         command: gunicorn --bind 0:8000 config.wsgi:application  # wsgi 파일 위치에 따라 다르게.
 
         volumes:
 
         volumes:
             - ../:/app  # 파이썬 도커파일에서 복사한 것을 /app에서 그대로 연결하여 사용한다.
+
             - ./:/app  # 파이썬 도커파일에서 복사한 것을 /app에서 그대로 연결하여 사용한다.
 
</syntaxhighlight>
 
</syntaxhighlight>
 
[[분류:6. 장고 웹서비스]]
 
[[분류:6. 장고 웹서비스]]

2022년 7월 6일 (수) 17:12 기준 최신판

1 개요[편집 | 원본 편집]

파이썬부터.

2 사전작업[편집 | 원본 편집]

과정 설명 방법
gunicorn 설치 pip install gunicorn
requirements.txt 제작 해당 환경에서 다음 명령을 진행하자. pip freeze > requirements.txt
도커, 도커 컴포즈 설치

3 파이썬 도커파일 제작[편집 | 원본 편집]

확장자 없이 Dockerfile을 제작한다.

# 사용하고 싶은 버전을 쓰자.
FROM python:3.6.0-alpine  
# 명령이 실행될 기본 경로
WORKDIR /app  
# .pyc 파일은 만들지 않는다.
ENV PYTHONDONTWRITEBYTECODE 1
# 파이썬 로그 버퍼링 없이 즉각출력.
ENV PYTHONUNBUFFERED 1
# 현재 경로의 파일들을 컨테이너 안의 /app 으로 옮긴다.
COPY ./ /app  
RUN pip install --upgrade pip
RUN pip install -r requirements.txt

4 docker-compose.yml 파일 제작[편집 | 원본 편집]

version: '3'

services:
    django:
        build: .  # 현재 위치의 도커파일을 사용하겠다는 의미.
        command: python manage.py runserver 0.0.0.0:8000  # 장고를 실행시킨다.
        command: gunicorn --bind 0:8000 config.wsgi:application  # wsgi 파일 위치에 따라 다르게.
        volumes:
            - ./:/app  # 파이썬 도커파일에서 복사한 것을 /app에서 그대로 연결하여 사용한다.