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
반응형
'웹 프로그래밍' 카테고리의 다른 글
[배포해보기 (8)] Docker Network의 이해 및 구현 (0) | 2021.06.28 |
---|---|
[배포해보기 (7)] Gunicorn (0) | 2021.06.27 |
[배포해보기 (4)] Port의 이해, Nginx 컨테이너 생성 (0) | 2021.06.27 |
[배포해보기 (3)] Portainer로 Docker Container를 GUI로 생성하기 (0) | 2021.06.21 |
[배포해보기 (2)] VPS 대여 (0) | 2021.06.21 |