Я пытаюсь заставить линтеры Python работать в VS Code, когда Python и все пакеты установлены в контейнере Docker.
Я раньше не пользовался линтерами. Но насколько я понимаю, как работают линтеры (по крайней мере, в VS Code), мне нужно указать VS Code на интерпретатор Python и при необходимости указать пути к пакетам. И это становится проблемой, если все установлено в контейнере Docker.
Я пытаюсь использовать только функции Docker. Я придумал следующее:
- Привязать каталог монтирования Python к некоторой локальной папке
- Выберите интерпретатор Python в VS Code из этой папки
- При необходимости добавить каталоги для установленных пакетов аналогичным образом (но мне пока не удалось достичь этого этапа)
Я попытался реализовать все, используя пример проекта Django из документации Docker, поэтому мои файлы выглядят следующим образом
docker-compose.yml
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
- ./.vscode/python:/usr/local/lib/python3.7 # The problem is here
ports:
- "8000:8000"
depends_on:
- db
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
requirements.txt
Django
psycopg2
Проект Django работает, когда строка - ./.vscode/python:/usr/local/lib/python3.7
закомментирована.
Но когда я пытаюсь связать папку монтирования Python так же, как смонтированную папку /code
, у меня не только не открывается содержимое этой папки, доступное локально, но проект Django перестает работать.
Можно ли монтировать исполняемый файл Python таким образом? Или, может быть, есть лучший способ использовать произвольные линтеры Python при использовании VS Code и Docker? Было бы здорово избежать:
- создание локально той же среды, что и в контейнере Docker
- установка расширений, которые не позволяют использовать произвольные линтеры