🐍
PyCharmでDocker Composeを使う
コンテナを使ってみたい
Docker Composeを使うときは、コマンドでやるからVS codeでもいいよなと思っていた。Runボタンを押さないので、PyCharmを使う必要がなかった。しかしDocker使う機能があるようだ?
まずは必要なファイルを作成しておく。Hello World
するだけ。
手動でプロジェクトを作成してPyCharmで開く。
mkdir fastapi-docker
📁のツリー構造
.
├── Dockerfile
├── README.md
├── __pycache__
│ └── main.cpython-312.pyc
├── docker-compose.yml
├── main.py
└── requirements.txt
Dockerfile:
FROM python:3.12-alpine
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
# コマンドを明示的に指定
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"]
docker-compose.yml:
services:
web:
build: .
ports:
- "8000:8000"
volumes:
- .:/app
# コマンドを明示的に指定
command: uvicorn main:app --host 0.0.0.0 --port 8000 --reload
requirements.txt:
fastapi
uvicorn
main.py
:
main.py
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):
return {"item_id": item_id}
再生ボタンの横のdrop downからEditを選択。以下のように設定
✅ 正しく設定されている項目:
- Name: FastAPI Docker Run
- Server: Docker が選択されている
- Compose files: ./docker-compose.yml が指定されている
- Services: web が選択されている
- "Remove orphans on 'down'" が有効になっている
- Command: docker compose up が設定されている
この設定で "OK" をクリックした後、上部の実行ボタン(緑の▶️)をクリックすることで、GUIからFastAPIアプリケーションを起動できるはずです。
▶️ボタンを押してコンテナが起動。curlコマンドを実行してログが表示されればOK
Swaggerも表示することができていれば成功しているはず💦
参考にした情報
私は設定方法違うと思いますがこちらのサイトを見て参考にしてましたね。
Discussion