meong_j
기록하는 습관.
meong_j
전체 방문자
오늘
어제
  • 분류 전체보기 (176)
    • 개인 공부 정리 (0)
    • 서버 운영 (37)
      • Linux (36)
    • Frontend (11)
      • Vue.js (10)
    • Backend (70)
      • Java (4)
      • Python (22)
      • Django (38)
      • Spring (6)
    • Database (5)
      • Oracle (4)
      • MySQL (1)
      • MariaDB (0)
    • Android (14)
      • Kotlin (6)
    • 배포 (9)
      • Docker (8)
      • AWS (1)
    • IT_study (29)
      • Coding test (17)
      • 알고리즘 (5)
      • 스터디 (6)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

인기 글

반응형

태그

  • 이차원배열정렬
  • 안드로이드adaptor
  • django
  • router-link
  • 개발자도서
  • 배포인프라
  • SASS Variables
  • dockersecret
  • 코틀린자료형
  • docker
  • 중첩라우트
  • Proxy
  • 리눅스방화벽
  • dp #알고리즘
  • gabagecollecter
  • Kotlin
  • cpu사용률
  • DHCP
  • 리눅스인증
  • 테크커리어

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
meong_j

기록하는 습관.

배포/Docker

Docker Volume

2021. 11. 26. 14:46
728x90
반응형

이전 포스팅에 이어서 django에 있는 static 파일들을 nginx로 동기화하는 방법을 포스팅하도록 하겠습니다.

https://meongj-devlog.tistory.com/150

 

[Docker] django 의 Collectstatic 명령어로 Nginx 컨테이너와 동기화 할 static 파일 취합하기

Collectstatic 명령어 python manage.py collectstatic 프로젝트에 있던 static 파일들이 staticfiles 라는 폴더가 생성된 곳에 복사됨 settings.py STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') STAT..

meongj-devlog.tistory.com


 

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
    '배포/Docker' 카테고리의 다른 글
    • Docker Swarm 의 이해
    • Docker Container 의 한계, Docker Stack의 이해
    • [Docker] django 의 Collectstatic 명령어로 Nginx 컨테이너와 동기화 할 static 파일 취합하기
    • [Docker]배포시 static 파일 지원하지 못하는 이유
    meong_j
    meong_j
    #it #개발일기 #개발공부 #개발자 #백앤드 #생각정리 #시간은 실력에 비례한다 #뭐든지 꾸준히 열심히 #오늘의 내가 내일의 나를 만든다

    티스토리툴바