728x90
반응형
이전 포스팅에 이어서 django에 있는 static 파일들을 nginx로 동기화하는 방법을 포스팅하도록 하겠습니다.
https://meongj-devlog.tistory.com/150
Docker Volume
Named Volume : docker 안에서 새로운 volume 만드는 것, container 들 끼리 volume을 붙여서 동기화 할 수 있다.
그래서 static 파일이나 jpg, png 등과 같은 media 파일들도 volume으로 만들어서 nginx와 django에서도 똑같이 사용할 수 있도록 할 수 있다.
먼저 portainer.io 에서 static, media volume 생성한다.
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
django에서 settings.py 에 작성 했던 staticfiles와 media 파일들을 Volume mapping 시켜준다.
container : /home/pragmatic/staticfiles/
-> volume : static(생성한 static volume) - local
container : /home/pragmatic/media/
-> volume : media(생성한 media volume) - local
이렇게 deploy 시켜주면 정상적으로 동기화된다.
nginx container 설정
container : /data/static/
-> volume : static - local
container : /data/media/
-> volume : media - local
container : /etc/nginx/nginx.conf
-> host : /home/django_course/nginx.conf
nginx도 파일을 연결시켜 동기화를 시켜준다.
nginx.conf
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 설정 파일에서 미디어 파일을 사용할 수 있도록 mime.types 를 include 하고
- static과 media 파일의 경로를 추가해준다.
- filezilla로 container에 업로드 후 deploy
반응형
'배포 > Docker' 카테고리의 다른 글
Docker Swarm 의 이해 (0) | 2021.11.26 |
---|---|
Docker Container 의 한계, Docker Stack의 이해 (0) | 2021.11.26 |
[Docker] django 의 Collectstatic 명령어로 Nginx 컨테이너와 동기화 할 static 파일 취합하기 (0) | 2021.11.26 |
[Docker]배포시 static 파일 지원하지 못하는 이유 (0) | 2021.11.26 |
Docker Network의 이해 및 구현 (0) | 2021.11.25 |