😽
fastapiをdocker環境で構築してみた。
こんにちは、フクロウです。
今回は簡単にfastapiでhelloと返ってくることを目的にやってみましょう。
環境
macOS Apple chip
前提
以下がインストールされていること
・Docker Desktop
・python 3.8
・pip 24.0
コピーいただけるだけで、使えます。多分.....
先にフォルダとファイルの構成から
app
L----main.py
----Pipfile
docker-compose.yaml
dockerfile
docker_recreate.sh ←私が作った独自ファイルです。なくても大丈夫
docker-compose.yaml
version: '3.8'
services:
fastapi-hello:
build: ./
command: 'pipenv run uvicorn main:app --host 0.0.0.0 --port 80 --reload'
ports:
- "8080:80"
volumes:
- './app:/code/app'
dockerfile
FROM python:3.8
RUN apt update && \
apt-get install iputils-ping net-tools -y && \
mkdir -p /code/app && \
# pipのアップデート
pip install --upgrade pip && \
# pythonの仮想環境ライブラリ
pip install pipenv && \
pip install --upgrade pipenv && \
WORKDIR /code/app
COPY ./app/Pipfile /code/app/Pipfile
RUN pipenv install --python 3.8 --dev
main.py
from fastapi import Request, FastAPI
app = FastAPI()
@app.get("/hello")
def get():
return "hello"
Pipfile
[dev-packages]
fastapi = "==0.109.2"
uvicorn = {extras = ["standard"], version = "==0.17.6"}
[requires]
python_version = "3.8.18"
docker_recreate.sh
docker-compose stop
docker-compose down
docker-compose build --no-cache
docker-compose create
docker-compose start
構築手順
・docker-compose up -d
あとは、ブラウザまたは、Postmanで以下にアクセス
http:0.0.0.0:8080/hello
上記でできるはず。
詰まった場合は、ご連絡を。。。修正します。
Discussion