python:3.12.4 이미지로 만든 uvicorn 서버 컨테이너의 그누보드6 채택완료
♤python:3.12.4이미지 기반인 uvicorn 서버(컨테이너)에서 그누보드6를 실행하려고,
Python FastAPI와 그누보드6의 PHP(https://glitter.kr/apm)를 함께 운영할 수 있도록 설정하였습니다.
-- network_mode: host
Dockerfile
</p>
<p>FROM python:3.12.4</p>
<p> </p>
<p>COPY requirements.txt .</p>
<p> </p>
<p>RUN pip install --upgrade pip && \</p>
<p> pip install --no-cache-dir -r requirements.txt</p>
<p> </p>
<p>WORKDIR /mnt/VOL1/mmglitter</p>
<p> </p>
<p>COPY . .</p>
<p> </p>
<p>EXPOSE 8002</p>
<p> </p>
<p>CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8002"]</p>
<p>
docker-compose.yml
</p>
<p>version: '3.8'</p>
<p> </p>
<p>services:</p>
<p> mmglitter:</p>
<p> container_name: con_mmglitter</p>
<p> build:</p>
<p> context: .</p>
<p> network_mode: host</p>
<p> volumes:</p>
<p> - /mnt/VOL1/mmglitter:/mnt/VOL1/mmglitter</p>
<p> - /mnt/VOL1/hwi:/mnt/VOL1/hwi</p>
<p>
>>> python:3.12.4 이미지로 만든 컨테이너(uvicorn 서버)로
그누보드6(https://policy.glitter.kr/qa_php/gu6_con_inst.png)을 실행하고.
"자유게시판"에 글쓰기를 하였더니,
다음과 같은 에러(https://policy.glitter.kr/qa_php/gu6_con_inst_error.png)가 납니다.
{"detail":[{"type":"int_parsing","loc":["body","parent_id"],"msg":"Input should be a valid integer, unable to parse string as an integer","input":""},{"type":"list_type","loc":["body","bf_file[]"],"msg":"Input should be a valid list","input":{"filename":"","file":{"_file":{},"_max_size":1048576,"_rolled":false,"_TemporaryFileArgs":{"mode":"w+b","buffering":-1,"suffix":null,"prefix":null,"encoding":null,"newline":null,"dir":null,"errors":null}},"size":0,"headers":{"content-disposition":"form-data; name=\"bf_file[]\"; filename=\"\"","content-type":"application/octet-stream"}}}]}
detail:"type":"int_parsing","loc":"body","parent_id","msg":"입력은 유효한 정수여야 합니다. 문자열을 정수로 구문 분석할 수 없습니다.","input":"""type":"list_type","loc""body","bf_file[]","msg":"입력은 유효한 목록","입력":"파일 이름":"","파일":_파일":"_최대_크기":1048576,"_롤링":false,"_임시파일인수":{"모드":"w+b","버퍼링":-1,"접미사":null,"접두사":null,"인코딩":null,"줄바꿈":null,"디렉토리":null,"오류":null}},"크기":0,"헤더":{"콘텐츠-처리":"양식-데이터; 이름=\"bf_file[]\"; 파일 이름=\"\,콘텐츠-유형":"응용 프로그램/옥텟-스트림
. ※ https://test.glitter.my ※
.
>>> 에러 메시지는 두 가지 문제를 지적하는데 ~~
1. "Input should be a valid integer, unable to parse string as an integer"
parent_id 값이 정수여야 하는데, 문자열로 전달됨
-- parent_id 필드는 정수를 요구하는데, 빈 문자열이 전달된 것 같습니다.
2. "Input should be a valid list"
bf_file 필드가 리스트여야 하는데, 잘못된 형식의 값이 전달됨
-- bf_file[] 필드가 리스트 형식이어야 하는데, 빈 파일 객체가 전달되는 것 같습니다.
>>> 식견이 짧아서 이해가 되지 않습니다.
>>> Uvicorn 서버를 컨테이너로 구동하지 않을 시, 정상 작동: https://glitter.my
>>> Uvicorn 서버를 컨테이너로 구동할 때만 이런 DB 에러가 발생합니다.
-- "관리자" 설정은 모두 정상; "게시판 "저장만 안됩니다.
■ 관리자: humanpc . 비번: 1234 ; https://test.glitter.my
♤ 조언 부탁드립니다 ♤
답변 2개
안녕하세요~ 혹시 해결 하셨나요?
개발 환경은 다르고, 같은 상황인데
게시판 글 생성에서 parent_id 가 비어있다는 에러가 나고,
꼭 board 가 아니어도(admin 이어도) html form 에서 리스트 형태 '[]' 로 데이터를 보내는데서 에러가 납니다.
소셜로그인 하는 부분에서 네이버, 카카오 등 체크하고 확인 눌러보면 '[]' 같은 에러가 나요.
그래서 리스트 형태로 데이터를 받아오는데 에러가 나길래 처음에는 파이썬 버전 문제인가 생각했었습니다.
답변에 대한 댓글 4개
>> 처음의 에러에 비하여 , 한 줄의 에러로 바뀌었네요.
1 : ../lib/slowapi/__init__.py 파일 수정
2: : main.py 수정
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
한 달을 넘겨 삽질 중이나, 해결책을 못 찾았습니다. > https://sir.kr/qa/544314
♠♠♠ 사용 중이던 그누보드6도 업그레이드 이후, 에러가 발생하여,
>>> 기존 data 수정은 되나 새로운 게시글 저장이 안되는 중입니다.
=== 기존의 g6 테스트 하기 : https://m.glitter.kr/board/write/test
전문인 들의 도움의 글도 없으며,
'엉뚱 하게 삼천포로 유도 하는 답글이나 붙이는 이'는 누구인 지 ???
>>> DB에는 문제가 없다는데,
♠♠♠ 에러의 원인은 ;
※ "g6의 FastAPI 애플리케이션에서 DB의 parent_id 필드(테이블)에 숫자가 아닌 빈 문자열의
입력을 요청 하여서 발생한 것으로 보인답니다."
>>> 이 문제는 주로 클라이언트(그누6 사용자)에서 데이터를 잘못 전송했거나,
해당 필드가 필수인데 누락된 경우에 발생할 수 있습니다.
>>> 누락된 경우 란 ;
"FastAPI 쪽(g6-FastAPI 애플리케이션)에서 parent_id 필드에
기본값을 설정(초기 설치시)하거나 데이터가 들어오지 않으면
기본값을 넣어주는 로직이 있어야 한다"는데,
~~~ 없다는 ~~~
♠♠♠ g6-FastAPI 애플리케이션, 원본 의 로직 문제로 사용자가 수정하여야 한다면,
= = = 공지가 있었을 것인데 . . .
. . . "그누보드6의 계발을 멈춘 것인가?" 싶습니다 !!!