docker, gunicorn, nginx 이용해서 배포
올만에 해서 다시 복습겸
우선 ec2나 vultr 같은 가상서버에 로그인
ssh root@주소
pw : 비번
portainer 볼륨 생성
docker volume create portainer_data
8000번 포트 열고
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/portainer/data:/data portainer/portainer-ce
docker container ls
iv4주소:9000
github에서 pull을 받을텐데, 만약 에러가 뜬다면
fatal: could not read Username for 'https://github.com': No such device or address
The command '/bin/sh -c git clone returned a non-zero code: 128
github 퍼블릭이여야 dockerfile bulid 시 가능
프라이빗은 ssh 접속으로 다르게 작성 필요
이렇게 만든 도커 파일 이름을 컨테이너와 연결시켜 준다.
캐시 지우는 작업 필요. 또는 시크릿창에서 접속
주소:8000
http://iv4 주소:8080/
근데 css 파일을 못가져오는 에러가 발생.
해결방법 : nginx로 정적파일 연결시켜줘야함
gunicorn이 동적파일을 웹서버에 전달해주는 역할이라면,
nginx은 정적파일을 클라이언트에 전달해주는 웹서버 역할임.
ec2 - nginx - gunicorn - django - python 순
worker_processes auto;
events {
}
http {
server {
listen 80;
location / {
proxy_pass http://만든컨테이너이름:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
호스트 : 주소
사용자명 : root
비밀번호 : 비밀번호
포트 : 22
파일질라에서 파일 .. 누르면 상위폴더로 이동
home 디렉토리로 이동해서 django_course 디렉토리 생성
nginx.conf를 드래그앤 드롭
이름 nginx로 컨테이너 생성
80번 포트와 80번 포트를 연결시켜줌
network를 django-nginx 네트워크와 연결
컨테이너와 호스트의 nginx.conf를 연결