Мне пришлось обновить базовый образ для моего бэкэнда Python с устаревшего образа FastAPI на более новую версию Alpine. Dockerfile ниже...
Однако теперь я не могу восстановить отладчик VSCode, потому что:
cd /fastapi ; /usr/bin/env /usr/bin/python3 /root/.vscode-server/extensions/ms-python.debugpy-2024.10.0/bundled/libs/debugpy/adapter/../../deb
ugpy/launcher 53213 -- -m uvicorn main:app --reload --port 8001
/usr/bin/python3: No module named uvicorn
launch.json
"configurations": [
{
"name": "Python Debugger: FastAPI",
"type": "debugpy",
"request": "launch",
"module": "uvicorn",
"args": [
"main:app",
"--reload",
"--port",
"8001"
],
"jinja": true
},
Файл Docker
FROM python:3.11.10-alpine3.20
COPY ./fastapi/app /app
COPY ./fastapi/requirements.txt /requirements.txt
COPY ./fastapi/start-reload.sh /start-reload.sh
COPY ./docker/memcached.sh /memcached.sh
USER root
ENV HOSTNAME fastapi
ENV PYTHONPATH '/:/app'
ENV IS_PROD 1
ENV TZ=Europe/Berlin
RUN apk add --no-cache mariadb-connector-c-dev memcached &&\
apk add --no-cache --virtual .build-deps \
build-base \
mariadb-dev &&\
apk add php83 &&\
apk add gcc musl-dev &&\
apk del .build-deps
RUN apk add py3-pip && \
pip install --upgrade pip && \
pip install -r /requirements.txt && \
echo 'asdf'
# CLEANUP
RUN apk cache clean &&\
apk del gcc musl-dev
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]
requirements.txt
fastapi[standard]
debugpy
pydantic
pytz
requests
python-dateutil
numpy
scipy
pymemcache
mysqlclient
Я также пытался подключиться к работающей конечной точке с помощью debugpy Attach, но тоже не смог заставить это работать...
Я не понимаю, почему модуль отсутствует, ведь он установлен
/fastapi # pip list | grep uvicorn
uvicorn 0.30.6
Подробнее здесь: https://stackoverflow.com/questions/790 ... -container