[배포해보기 (6)] Django container 생성
웹 프로그래밍

[배포해보기 (6)] Django container 생성

728x90
반응형

django container 를 만들기 위한 과정

 

1. Upload Source to Github

2. Write Dockerfile

3. Build Image

4. Run Container


1. Upload Source to Github

올리기전 requirements.txt 만들어주기

 pip freeze > requirements.txt

가상환경을 만들고 안에 관련 패키지들을 넣었었다. 새로 만들 장고 컨테이너 안에서 이들을 다시 깔아주어야하는데 이 정보를 남겨주기 위해 명령을 실행한다.

 

2. Write Dockerfile

Dockerfile = How to make an image?

 

몇가지 주요 COMMAND

FROM Base Image를 뭘쓸지 골라준다
RUN command를 실행 (pip install..., git clone...., )
WORKDIR cd와 비슷함. 다만 절대경로 기반임.
EXPOSE 포트를 노출시켜 외부와 연결할 수 있도록
CMD 컨테이너가 실행될때마다 돌아야할 커맨드를 넣어준다.

 

- Dockerfile 생성

FROM python:3.9.0 //파이썬이 깔려진 환경을 베이스 이미지로 할 것임

WORKDIR /home/

RUN git clone [github address]

WORKDIR /home/[깃헙클론하면서 생긴 폴더]/

RUN pip install -r requirements.txt //이 파일안의 모든거 설치

RUN python manage.py migrate //migrate를 통해 DB와 연동

EXPOSE 8000 //8000 포트 노출시켜 통신할 수 있도록

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

 

하지만 secret key를 숨기기위해 .env파일을 만들었고 gitignore로 github에 올리지 않았으니까 이렇게 하면 실행이 되지 않는다. 임시로 RUN echo "씨크릿키 써주기" > .env 넣어 해결해둔다.

 

FROM python:3.9.0 //파이썬이 깔려진 환경을 베이스 이미지로 할 것임

WORKDIR /home/

RUN git clone [github address]

WORKDIR /home/[깃헙클론하면서 생긴 폴더]/

RUN pip install -r requirements.txt //이 파일안의 모든거 설치

RUN echo "씨크릿키 써주기" > .env // 실행을 위해 임시로 써준다. 추후 해결할 것

RUN python manage.py migrate //migrate를 통해 DB와 연동

EXPOSE 8000 //8000 포트 노출시켜 통신할 수 있도록

CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]

 

3. Build Image

> Portainer에서 Build a new image

> name 설정. django_test_image:1으로 하였다. 콜론을 해서 태그이름을 붙일 수 있다.

> Upload Dockerfile

 

> Build Image

 

 

4. Run Container

> Add container

> 앞에서 만든 이미지 설정해준다

> 컨테이너의 8000포트를 외부에 있는 8000포트와 연결

> Deploy

 

 

주소:8000 접속해보면 우선은 정상 작동하는걸 확인할 수 있다.

 

 

728x90
반응형