#django #docker #visual-studio-code
Вопрос:
Я следую этому руководству по отладке Django внутри контейнера Docker с использованием кода VS. Единственное отличие, которое я сделал,-это изменил порты на 8000
и хост 0.0.0.0
, потому что в моем docker-compose это так. Я понятия не имею, почему веб-контейнер отключается, когда я запускаю Django с точкой останова внутри представления, потому что я действительно не знаю, откуда берется проблема. Мое единственное предположение основано на vscode/launch.json
файле, который настроен следующим образом:
{
"version": "0.2.0",
"configurations": [
{
"name": "Run Django",
"type": "python",
"request": "attach",
"pathMappings": [
{
"localRoot": "${workspaceFolder}/app",
"remoteRoot": "/usr/src/app"
}
],
"port": 8000,
"host": "0.0.0.0",
}
]
}
Есть какие-нибудь идеи, почему это не работает или откуда берется проблема?
Ответ №1:
Вы используете Mac или WSL1? Я видел, как у Docker заканчивалась память в VSCode при использовании отладчика, особенно с точками останова.
Виртуализация Docker находится на уровне ОС, однако для достижения этой виртуализации ОС ядро вашей машины должно быть таким же, как у вашего контейнера (поэтому в Windows есть WSL2), но macOS работает на Darwin, а не на Linux, поэтому ему нужен другой уровень (виртуальная машина LinuxKit).
Пожалуйста, проверьте, есть ли в настройках Докера эта вкладка «Ресурсы». Если это так, дайте ему еще немного памяти, отладка VSCode в Django довольно тяжелая.
Комментарии:
1. Спасибо за ответ. У меня есть вкладка «Настройки», и она обновлена до 5 ГБ, но контейнер продолжает отключаться. Кстати, я на Mac, это может быть причиной проблемы
2. Попробуйте запустить
top
команду внутри контейнера, чтобы увидеть, не взорвется ли память. Также увеличьте не только память, но и подкачку.