1. Secret 설정
SECRET을 이전 강의들과 같이 추가해준다.
2. stack 배포
디렉토리 생성
EC2 서버의 디렉토리 내에 nginx.conf 설정파일을 넣어주기 위한 작업을 한다. cmd로 이전 글과 같이 EC2에 접속하고, home/ubuntu/ 디렉토리에서 sudo mkdir 명령어로 'django-course' 파일을 만든다. cmd 접속 시 'ubuntu' 라는 유저로 로그인했기 때문에, 명령어에 반드시 sudo가 포함되어야 한다.
ssh -i {key 이름.pem} ubuntu@{IPv4 주소}
sudo mkdir django_course
권한 부여
파일을 옮기는 것도 권한이 필요하기 때문에 home/ubuntu/ 디렉토리에서 아래 명령어로 ubuntu 유저에게 쓰기 권한을 부여한다.
sudo chmod 777 django_course/
파일 전송
좌상단 사이트 관리자 버튼 - new stie로 AWS EC2에 파일전송을 할 수 있도록 연결 설정을 해준다.
프로토콜: SFTP,
호스트: 퍼블릭 IPv4 주소,
포트 : 22,
로그온 유형: 키 파일
사용자: ubuntu
키 파일: 개인 키 파일
로 설정해준다.
3. 스택 배포
이미지 생성
이전에 했던대로 portainer에서 ver.5로 이미지를 생성한다.
스택생성
마찬가지로 이전에 했던대로 스택을 생성한다.
[중단] 스택 배포 시 발생한 문제점(22.07.03)
invalid bind mount source, must be an absolute path: C:...
아래처럼 docker-compose.yml 파일에서의 bind volume 설정을 windows에서 사용하는 backward slash(\) 방식으로 지정했는데, portainer에서 absolute path를 사용하라는 에러가 나온다.
volumes:
- C:\Users\chang\PycharmProjects\pragmatic\nginx.conf:/etc/nginx/nginx.conf #nginx.conf bind volume
# volume 이름:node상 디렉토리 위치
- static-volume:/data/static
- media-volume:/data/media
https://github.com/docker/compose/issues/4303
위 링크 등 약 2018년 기준으로 docker에서의 windows 환경에서 경로 설정에 에러가 있었고 github의 issue등을 검색해보니 이미 수정된 것 같은데, CLI 방식의 docker에서 "COMPOSE_CONVERT_WINDOWS_PATHS=1" 로 설정해주어야 하는 것 같다. portainer에서 GUI 기반으로 하자니, volume binding 경로를 forward slash(/), double quote(" "), 상대 참조 (./)로 변경하는 방식 등은 잘 안된다.
docker CLI 환경변수 설정
https://docs.docker.com/compose/reference/envvars/#/composeconvertwindowspaths
그리고 docker CLI 방식에 대해서 아직은 잘 모르는 상태라, 추후에 docker CLI 등 docker에 대한 전반적인 이해가 더 되고 나면 마무리를 지어야겠다. 시간 소요가 커서, 우선 다른 곳에 집중할려고 한다.
참조
1. 작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지-박형석님 인프런 강의
'Programming-[Backend] > Django' 카테고리의 다른 글
[TIL] Pycharm에서 Python Console에 shell_plus 연결하기 (0) | 2022.07.05 |
---|---|
[DJANGO ORM 쿡북][작성중] 1. 테스트 환경 세팅(shell plus) 및 기본 함수 (0) | 2022.07.05 |
[TIL]Django Swagger 표현을 위한 라이브러리 : drf-spectacular(drf-yasg), OpenAPI (0) | 2022.06.29 |
Django로 Pinterest 따라 만들기[3부 AWS] - 23. AWS EC2 생성, Docker 연결 및 Portainer 설치 (0) | 2022.06.24 |
Django로 Pinterest 따라 만들기[2부 Docker] - 22. Docker Secret (0) | 2022.06.21 |