do_it_django에서는 장고+nginx+postgresql을 사용했는데,
잘 모르는 postgresql말고 mariaDB로 바꾸고 싶어서 노가다 끝에 성공...
다음은 nginx를 apache로 바꿔봐야지...
docker-compose.yml 설정.
문제는 docker container로 올릴때 발생했는데...
mysqlclient 설치가 안되는 것이었다.
해결방법 dockerfile에 아래 세가지를 추가하고 하면 잘됨...
문제는 mysql_config이 없다고나오는데 그건 'default-libmysqlclient-dev'로 해결.
그리고 또에러가나오는데 python-dev로 해결
그리고 또 나오는데 gcc가 없다고나와서 또 설치해서 해결...
RUN apt-get install -y gcc
RUN apt-get install -y default-libmysqlclient-dev
RUN apt-get install -y python-dev
중간에 db-server도 설치해보고, db가 올라오기전에 django가 먼저올라와서 그런가해서 대기도걸어보고...
별에별짓 다했는데...
그냥 저거 세줄이면 해결되는거였다...
위내용으로하면 끝인줄알았더니 이번에는 또 다른 문제가 발생...위내용은 window개발 pc에서 진행한거였는데 문제가 없었다.
그런데 centOS7 서비스용 pc로 git pull로 땡기고 빌드하는데 계속 문제가 발생하였다.
1. 환경변수 문제.
mysql과 mariadb에서 사용하는 환경변수가 다른 문제.
윈도우에서는 왜 되는지 잘 모르겠으나, 일단 문제가 발생.
환경변수파일도 인식이 잘 안되서 아에 직접 넣어서 해결.
2. 1서버 2개 서비스 컨테이너 문제.
네트워크 통신이 잘 안되서 그냥 첫번째 서비스 올라가있는 네트워크에 붙여버렸음.
3. ci/cd 자동화 문제.
db가 올라오기전에 django가 올라오면서 문제가 생기는현상.
migrate가 정상적으로 되지않음...
docker-compose있는 경로에 아래 wait-for-it.sh파일을 생성및 설정.
https://github.com/vishnubob/wait-for-it/blob/master/wait-for-it.sh
docker-compose 구문 수정
서버가 먼저 올라오면안됨 마이그레이션 먼저 실행 시키고 서버올리는 순서로 작성.
대기시키는 상태 추가하여 해결...
'프로그래밍 학습 > Python-Django 3.2' 카테고리의 다른 글
예제 | user 리스트 가져오기 (0) | 2023.05.29 |
---|---|
예제 | Function Based View (0) | 2023.05.29 |
django | summernote 적용 (0) | 2023.02.05 |
django | app생성 및 적용 (0) | 2022.11.20 |
djangon | url경로 지정, include (0) | 2022.11.14 |