🐍

PyCharmでDocker Composeを使う

2024/12/31に公開

コンテナを使ってみたい

Docker Composeを使うときは、コマンドでやるからVS codeでもいいよなと思っていた。Runボタンを押さないので、PyCharmを使う必要がなかった。しかしDocker使う機能があるようだ?

https://pleiades.io/help/pycharm/docker-compose.html

まずは必要なファイルを作成しておく。Hello Worldするだけ。

手動でプロジェクトを作成してPyCharmで開く。

Githubに完成品あります

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も表示することができていれば成功しているはず💦
http://0.0.0.0:8000/docs

参考にした情報

私は設定方法違うと思いますがこちらのサイトを見て参考にしてましたね。

https://fastapi.tiangolo.com/ja/deployment/docker/
https://qiita.com/suke_masa/items/5931bb7cfa49de1e7ba8
https://qiita.com/f_sugar/items/96be348ab960a576266f

Discussion