python:3.12.4 이미지로 만든 uvicorn 서버 컨테이너의 그누보드6
본문
♤python:3.12.4
이미지 기반인 uvicorn
서버(컨테이너)에서 그누보드6를 실행하려고,
Python FastAPI와 그누보드6의 PHP(https://glitter.kr/apm)를 함께 운영할 수 있도록 설정하였습니다.
-- network_mode: host
Dockerfile
FROM python:3.12.4
COPY requirements.txt .
RUN pip install --upgrade pip && \
pip install --no-cache-dir -r requirements.txt
WORKDIR /mnt/VOL1/mmglitter
COPY . .
EXPOSE 8002
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8002"]
docker-compose.yml
version: '3.8'
services:
mmglitter:
container_name: con_mmglitter
build:
context: .
network_mode: host
volumes:
- /mnt/VOL1/mmglitter:/mnt/VOL1/mmglitter
- /mnt/VOL1/hwi:/mnt/VOL1/hwi
>>> 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 에서 리스트 형태 '[]' 로 데이터를 보내는데서 에러가 납니다.
소셜로그인 하는 부분에서 네이버, 카카오 등 체크하고 확인 눌러보면 '[]' 같은 에러가 나요.
그래서 리스트 형태로 데이터를 받아오는데 에러가 나길래 처음에는 파이썬 버전 문제인가 생각했었습니다.