Fastapi+React+Docker가 Qiita와 비슷한 사이트를 만들고 싶어요. - 첫날-

4022 단어 ReactPythonFastAPI
배경.
어제 Fastapi를 만져봤는데 느낌이 좋은 것 같아서 공부하고 있는 React를 포함하는 사이트를 만들어 봤어요.
주의: 학습 중인 사람을 위해 이상한 글을 쓰기 시작할 수도 있으니 용서해 주세요.
초기 구성
자꾸 Docker가 건드린 것 같아서 오늘은 Backend의 기초를 닦아야겠어요.
초기 파일은 다음과 같이 구성되어 있다.
├backend
│ └ Dockerfile
└ docker-compose.yaml
./backend/Dockerfile
FROM --platform=arm64 python:3.9-buster

WORKDIR /src
docker-compose.yaml
version:'3'
services:
 backend:
  build:./backend
  volumes:
   - ./backend:/src
  ports:
   - 8000:8000
  tty: true # docker-compose up した後Exitしないように一旦
이것밖에 없어요.
초기 설정
어쨌든 이 상태로 구축을 해보도록 하겠습니다.
terminal
docker-compose up #buildしろって怒られるけど知らん
들여다보다
terminal
docker-compose exec backend bash
안에 들어가면 Poetry 설치와 init.
bash
pip install poetry
poetry init
많은 질문을 받았지만 전부 yes
fastapi와 uvicorn 설치
bash
poetry config virtualenvs.in-project true
poetry add fastapi
poetry add uvicorn[standard]  
※ uvicorn의 [standard]가 켜지지 않아, 시동이 걸리지 않아, 1시간 동안 죽어
그럼 pyprojecttoml와poetry.lock백엔드에서 생성됩니다.
잠시 이 상태에서 패스타피를 이동하기 위해 간단한 HelloWorld
./backend/api/v1/main.py
from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
 return {"Hello","World"}
부팅
bash
poetry run uvicorn api.v1.main:app --host 0.0.0.0 --reload
브라우저에서 localhost:3000에 로그인하면 Hello World가 표시되면 OK

그리고 환경에서 벗어나 청소를 한다.
terminal
docker-compose down
docker image ls
docker image rm [imageId]
#一応イメージも削除しておく
그리고 지금까지 수행된 명령에 따라 Docker file을 다시 작성합니다.
./backend/Dockerfile
FROM --platform=arm64 python:3.9-buster

WORKDIR /src

RUN pip install poetry 
COPY pyproject.toml* ./ 
COPY poetry.lock* ./
RUN poetry config virtualenvs.in-project true
RUN poetry install

ENTRYPOINT ["poetry","run","uvicorn","api.v1.main:app","--host","0.0.0.0","--reload"]

재구성
terminal
docker-compose up
아무것도 없으면 Application startup complete가 표시되고 브라우저도 확인해 봤는데 오늘 끝났어요.

좋은 웹페이지 즐겨찾기