아 프로젝트 이제 배포도 해보자!
- 현재까지 진행된 부분을 정리하여 이번주 안으로 ver.1 단계를 배포해서 사용할 수 있는 상태로 만들어 보도록 한다.
- 현재 진행 단계
- 얼굴인식 ( 완료 ) : 얼굴인식으로 10대 순으로 인식 가능
- 음성인식 ( 진행중 ) : 음성 인식으로 추천 메뉴를 받아서 오는 단계 완료, 각 언어별로 음성인식 기능 지원, 고연령자 탬플릿에서 음성인식으로 메뉴 선택 및 장바구니 수정, 결제진행 설정 진행중
- 기본 키오스크 탬플릿 ( 완료 ) : 각 나라별로 언어에 맞추어 메뉴를 표기 및 추천 메뉴 별도 확대 제공, AI답변을 메세지표기
- 고연령자 탬플릿 ( 진행중 ) : 추천 음료 팝업 창 표기 및 관련 메뉴 추천 기능 완료, 음성인식으로 동작하는 방법 진행중
- 데이터 베이스 ( 완료 ) : 탬플릿에서 넘어온 데이터를 데이터 베이스에 저장 및 추천 메뉴 명에 맞추어 표기 및 페이지 네이션 기능 완료
- 배포 ( 진행중 ) : docker를 이용한 django, redis, postgreSQL, celery를 생성 가능 확인, aws ec2를 이용한 배포 준비 단계 (인스턴스 생성), 기능이 완료 되는 데로 배포 단계 시작 예정
- 배포 기능 완료시 추가 되어야 할 사항
- 전체적인 코드 정리(필요 없는 코드 및 주석 삭제, 긴 코드는 따로 빼내어 정리) 및 기능별로 주석 설명 추가
- admin-page 꾸미기
- 점주 주문 대시보드 기능 추가
- docker image를 이용하여 postgreSQL, redis, celery 를 구현하는 단계에서 오류가 발생
web-1 | python: can't open file '/app/manage.py': [Errno 2] No such file or directory-
→ 해당 파일이 분명이 존재하는 것을 확인 했으나 실행시 파일을 확인할 수 없다는 오류가 발생하는 문제가 해결이 되지 않아 다음 단계로 넘어갈 수 없는 상태
- 일시적인 해결 방안으로 볼륨 코드 주석 처리 하여 실행하면 실행이 되는 것을 확인
services:
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
# volumes:
# - .:/app
ports:
- "8000:8000"
depends_on:
- db
- redis
db:
image: postgres:latest
environment:
- POSTGRES_DB=mydb
- POSTGRES_USER=myuser
- POSTGRES_PASSWORD=mypassword
redis:
image: redis:latest
celery_worker:
build: .
command: celery -A SilverLining worker -l info
# volumes:
# - .:/app
depends_on:
- redis
celery_beat:
build: .
command: celery -A SilverLining beat -l info
# volumes:
# - .:/app
depends_on:
- redis
→ 그러나 이렇게 작성하면 변경된 수정사항을 최신화 할 수 없어 항상 up —build를 해야 하는 문제가 발생
- 오류문제 해결 방안들→ 프로젝트파일 날리고 새로 clone
- → dockerFile 내용 수정
- → docker 삭제 후 설치
위의 방법들을 동원하여도 동일한 오류 발생
- 문제 해결 : 기존 외부 드라이브 E:에 설치 되어 있던 프로젝트 파일을 c드라이브로 이동하여 docker를 생성하여 오류를 해결→ 변경 : C:/User/username/SilverLining/
- → 기존 : E:/python/SilverLining/
- 신한결튜터님 : docker 생성시 발생되는 오류를 분석하여 해당 오류원인이 파일위치에 있는 것으로 판단하여 경로를 수정해 보기로 건의
- sd카드 폴더 밖으로 옮긴 후 실행 → 오류해결
- 결론 : 주 드라이브가 아닌 외부의 드라이브에서 docker를 생성하게 되면 오류가 발생 할 경우가 생기므로 docker생성은 주 드라이브에서 생성하여야 한다는 것을 알게 됨
- 추가 : 기존 번역을 위해서 필요한 django-translation을 사용하기 위에서 gettext를 docker에도 설치하기 위해서는 아래와 같은 명령어를 추가로 dockerFile에 입력해 주어야함
FROM python:3.8
# GNU gettext 설치
RUN apt-get update && apt-get install -y gettext
# 필요한 작업을 위한 작업 디렉토리 설정
WORKDIR /app
# 여기에 나머지 Dockerfile 명령어를 추가하세요.
# up 후에 입력 필요
docker-compose run --rm web bash
- 도커로 서버를 실행하게 되면 마이그레이트 및 번역 등록을 시켜주어야 함
#docker로 실행 후 해주어야 하는 것
#마이그래이션
docker-compose run --rm web python manage.py migrate
# 번역 등록
docker-compose run --rm web python manage.py compilemessgae
# 번역시 필요
docker-compose run --rm web bash
'코딩 교육 TIL' 카테고리의 다른 글
2024-06-05 AI 코딩 TIL (2) | 2024.06.05 |
---|---|
2024-06-04 AI 코딩 TIL (0) | 2024.06.04 |
2024-05-31 AI 코딩 TIL (1) | 2024.05.31 |
2024-05-30 AI 코딩 TIL (0) | 2024.05.30 |
2024-05-29 AI 코딩 TIL (0) | 2024.05.29 |