반응형
도커 파일 작성 예시로 간단한 back-end 서버를 만들어 본다.
다음은 파이썬 FastAPI 백엔드 서버를 작성한 후 docker 이미지를 생성하는 예시이다.
Docker가 설치되어 있다는 가정하에 작성한다.
1. FastAPI 백엔드 서버 작성
main.py
from typing import Union
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
return {"item_id": item_id, "q": q}
requirements.txt
fastapi
uvicorn
파이썬 필요한 패키지를 담은 파일
dockerfile
# 베이스 이미지 설정 (Python 3.8 기반의 공식 이미지 사용)
FROM tiangolo/uvicorn-gunicorn-fastapi:python3.8
# 작업 디렉토리 설정
WORKDIR /server
# 호스트의 현재 디렉토리의 모든 파일을 컨테이너의 /app 디렉토리로 복사
COPY ./server /server
# 필요한 패키지 설치
RUN pip install --no-cache-dir -r requirements.txt
# 컨테이너 실행 명령 설정 (uvicorn으로 FastAPI 앱 실행)
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8080"]
위의 작성한 3개의 파일(main.py, requirements.txt, dockerfile)을 모두 같은 디렉토리에 위치시키고, 터미널에서 다음의 명령어를 실행하여 도커 이미지를 build한다.
docker build -t fastapi-server .
이미지가 빌드되면 다음의 명령으로 컨테이너를 실행한다.
docker run -d -p 8080:8080 fastapi-server
웹 브라우저에서 `http://localhost:8080`에 접속하여 정상적으로 서버의 응답이 오는지 확인한다.
또는 터미널에서 `curl http://localhost:8080` 명령을 통해 서버로 부터 json 형식의 응답을 확인할 수 있다.
반응형
'Linux > Docker' 카테고리의 다른 글
도커(docker) 기본 명령어, 사용 예시 (0) | 2023.10.24 |
---|---|
도커(docker) dockerfile 인스트럭션 (0) | 2023.08.24 |
도커(docker) 설치 방법 - 우분투(ubuntu) (0) | 2023.08.10 |
도커(docker)란 무엇인가? - 도커 개념 및 기초 (0) | 2023.08.10 |
댓글