python:3.12.4 이미지로 만든 uvicorn 서버 컨테이너의 그누보드6

python:3.12.4 이미지로 만든 uvicorn 서버 컨테이너의 그누보드6

QA

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

 

       ♤  조언 부탁드립니다  ♤

이 질문에 댓글 쓰기 :

답변 1

안녕하세요~ 혹시 해결 하셨나요?

 

개발 환경은 다르고, 같은 상황인데

 

게시판 글 생성에서 parent_id 가 비어있다는 에러가 나고,

 

꼭 board 가 아니어도(admin 이어도) html form 에서 리스트 형태 '[]' 로 데이터를 보내는데서 에러가 납니다.

 

소셜로그인 하는 부분에서 네이버, 카카오 등 체크하고 확인 눌러보면 '[]' 같은 에러가 나요.

 

그래서 리스트 형태로 데이터를 받아오는데 에러가 나길래 처음에는 파이썬 버전 문제인가 생각했었습니다.

 

 

 

. 안녕하세요 !
.
. 작업 중입니다.
.
. Uvicorn server를 컨테이너에 담으면 DB가 호스트에 있건 , 컨테이너에 있건 소통이 불안합니다.

>>> 단순한 Data는 기록이 되는데 fastAPI관련 DB는 에러가 납니다.
      -- 읽기는 되는데, 쓰기가 안됩니다.

----
.  에러를 조금 잡아서 - 내용이 많이 줄었습니다.

  detailtype":"int_parsing","loc":["body","parent_id"],"msg":"Input should be a valid integer, unable to parse string as an integer","input
-- detail type":"int_parsing","loc":["body","parent_id"],"msg":"입력은 유효한 정수여야 합니다. 문자열을 정수로 구문 분석할 수 없습니다.","input

  -- ㅠ ㅠ ㅠ ㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT