Fastapi+React+Docker가 Qiita와 비슷한 사이트를 만들고 싶어요. - 첫날-
어제 Fastapi를 만져봤는데 느낌이 좋은 것 같아서 공부하고 있는 React를 포함하는 사이트를 만들어 봤어요.
주의: 학습 중인 사람을 위해 이상한 글을 쓰기 시작할 수도 있으니 용서해 주세요.
초기 구성
자꾸 Docker가 건드린 것 같아서 오늘은 Backend의 기초를 닦아야겠어요.
초기 파일은 다음과 같이 구성되어 있다.
├backend
│ └ Dockerfile
└ docker-compose.yaml
./backend/DockerfileFROM --platform=arm64 python:3.9-buster
WORKDIR /src
docker-compose.yamlversion:'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
많은 질문을 받았지만 전부 yesfastapi와 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가 표시되고 브라우저도 확인해 봤는데 오늘 끝났어요.
Reference
이 문제에 관하여(Fastapi+React+Docker가 Qiita와 비슷한 사이트를 만들고 싶어요. - 첫날-), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ikeikeda/items/eeed5abb2230bf031ba5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)