1.
준비 사항
•
Gitpod.io 계정 (Free or Student)
Gitpod Free 는 퍼블릭 레포만 작업 가능 / 월 50시간 제한
Gitpod Student는 프라이빗 레포도 작업 가능 / 월 100시간 제한
Gitpod Student 는 학생 인증된 Github 계정으로 로그인 후 My Subscription 페이지에서 확인 가능
•
Gitpod 설정 수정
Gitpod > Settings
Feature Preview > Enable Feature Preview 체크
Default IDE 선택
Theia : Eclipse 팀이 만든 IDE / 강의에서 사용
Code : VSCode 의 웹버전 IDE / 호환성 이슈 있음
•
Gitpod 인스턴스 생성
본인의 GitHub 레포지토리로 이동
레포지토리 주소 앞에 gitpod.io/#을 붙임
ex) gitpod.io/#https://github.com/username/repo
2.
requirements 설치
•
pip install -r requirements.txt
3.
Whitenoise 설치
•
pip install whitenoise
•
MIDDLEWARE 에서 SecurityMiddleware 바로 아래 내용 추가
'whitenoise.middleware.WhiteNoiseMiddleware',
4.
Gunicorn 설치
•
pip install gunicorn
5.
Dockerfile 생성
FROM python:3.8
ENV PYTHONUNBUFFERED=1
RUN mkdir /app
WORKDIR /app
COPY . /app
RUN apt-get update \
&& apt-get install -y \
python3 python3-pip python3-dev python3-venv build-essential libpq-dev \
&& rm -rf /var/lib/apt/lists/*
RUN pip install -r requirements.txt
RUN chmod +x /app/run.sh
EXPOSE 8000
ENTRYPOINT ["/app/run.sh"]
6.
run.sh 파일 생성
#!/bin/bash
python manage.py migrate
python manage.py collectstatic
gunicorn lionproject.wsgi -b 0.0.0.0:8000
•
pip freeze > requirements.txt # requirements 파일 생성
•
sudo docker-up # 이 창을 닫으시면 안됩니다
•
Ctrl + Shift + ` 키로 새로운 터미널 열기
•
docker build -t DockerHubId/django-app . # 도커 이미지 생성
•
docker run -it -p 8000:8000 DockerHubId/django-app # 생성된 도커 이미지 실행
•
docker login # Docker Hub에 로그인 (이미지 업로드용)
•
docker push DockerHubId/django-app # Docker Hub에 생성된 이미지 업로드
•
https://hub.docker.com/r/DockerHubId/django-app 에서 내 앱이 업로드 된 것 확인