【问题标题】:Pycharm debugger setup with FastApi and docker compose使用 FastApi 和 docker compose 设置 Pycharm 调试器
【发布时间】:2022-01-16 13:34:58
【问题描述】:

我很难通过 docker-compose fastAPI 设置使用 Pycharm 附加调试器

码头工人撰写

    version: '3.8'

services:
  api:
    build: .
    volumes:
      - .:/app
    ports:
      - "8080:80"
    environment:
      - DATABASE_URL=postgresql://test_user:test_pwd@db:5432/test_db
    depends_on:
      - db
  
  db:
    image: postgres:13-alpine
    volumes:
      - postgres_data:/var/lib/postgres/data/
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_USER=test_user
      - POSTGRES_PASSWORD=test_pwd
      - POSTGRES_DB=test_db

volumes:
  postgres_data:

码头文件:

FROM tiangolo/uvicorn-gunicorn:python3.9

COPY requirements.txt /tmp/requirements.txt
RUN pip install --no-cache-dir -r /tmp/requirements.txt

COPY ./app /app/app

CMD [ "/start-reload.sh" ]

我已经在 pycharm 中为 docker-compose 设置了一个远程解释器 当我启动应用程序时它可以工作但断点没有

我尝试设置 python 配置:

应用程序启动但断点不太多

如果您有任何建议? 谢谢你

【问题讨论】:

标签: python docker docker-compose pycharm fastapi


【解决方案1】:

这对我有用(来自https://github.com/tiangolo/fastapi/issues/23#issuecomment-571602787):

以下内容适用于在 docker-compose 远程解释器中运行重新加载的 pycharm 调试器

from fastapi import FastAPI
import uvicorn

app = FastAPI()

@app.get("/")
def root():
    a = "a"
    b = "b" + a
    return {"hello world": b}


if __name__ == '__main__':
    uvicorn.run("main:app", host='0.0.0.0', port=8000, reload=True)

注意它是 "main:app" 而不是 app 否则你会得到一个错误: 警告:您必须将应用程序作为导入字符串传递才能启用“重新加载”或“工人”。

【讨论】:

    猜你喜欢
    • 2020-07-22
    • 2018-09-03
    • 2019-07-19
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 2023-02-02
    • 2018-08-29
    相关资源
    最近更新 更多