728x90
반응형
settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
BASE_DIR / "static",
]
collectstatic
python manage.py collectstatic
로컬에서 collectstatic 해도 달라질건 없기때문에 로컬은 놔두고 dockerfile에 입력해준다.
FROM python:3.9.0
WORKDIR /home/
RUN git clone https://github.com/Aiden-Kwak/oconnect2021_ver4.git
WORKDIR /home/oconnect2021_ver4/
RUN pip install -r requirements.txt
RUN pip install gunicorn
RUN echo [시크릿키] > .env
RUN python manage.py migrate
RUN python manage.py collectstatic
EXPOSE 8000
CMD ["gunicorn", "oconnect.wsgi", "--bind", "0.0.0.0:8000"]
1. docker image create
2. docker volume 생성 및 container 적용
A. docker volume의 이해 : 다른 컨테이너간의 데이터를 공유할 수 있는 기능
2- types of Volume : Bind volume & Named Volume
1) bind volume
Host server(ex. vultr) 안의 파일이나 경로를 도커안에 있는 컨테이너(ex. nginx)의 파일이나 디렉토리를 연동시켜서 같이 사용할 수 있도록 만든다.
2) named volume
named volume은 docker안에서 이름이 달려있는 새로운 volume을 만든다.그리고 이걸 구동중이거나 구동할 컨테이너들이랑 붙여서 동기화할 수 있다. (이 볼륨은 컨테이너 안에선 특정한 디렉토리로 나올 것.)
붙어있던 컨테이너가 사라진다면? 이 볼륨은 사라지지 않는다. 어떤 컨테이너가 사라지더라도 이 볼륨은 그 데이터를 유지시킨다.
B. Volume 생성
static volume
media volume
C. Container 생성
-django_container_gunicorn
> network: nginx-django
> volume
> deploy
-nginx
>network: nginx-django
>volume
> nginx.conf
worker_processes auto;
events {
}
http {
server {
listen 80;
include mime.types;
location /static/ {
alias /data/static/;
}
location /media/ {
alias /data/media/;
}
location / {
proxy_pass http://django_container_gunicorn:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
>nginx.conf vps에 올리기
>deploy
728x90
반응형
'웹 프로그래밍' 카테고리의 다른 글
[배포해보기 (12)] Docker Stack, Docker Swarm 의 이해 (0) | 2021.07.16 |
---|---|
[배포해보기 (11)] MariaDB container를 이용한 DB분리 (0) | 2021.06.29 |
[배포해보기 (9)] Static 의 이해 (0) | 2021.06.29 |
[배포해보기 (8)] Docker Network의 이해 및 구현 (0) | 2021.06.28 |
[배포해보기 (7)] Gunicorn (0) | 2021.06.27 |