Не могу подключиться к процессу django, запущенному в контейнере с vs-кодом - PullRequest
0 голосов
/ 13 октября 2019

У меня проблемы с подключением к процессу django, работающему внутри контейнера, порожденного vs-кодом. Кажется, все работает, и я получаю сообщение о запуске сервера, но при подключении к localhost: 8000 я не получаю ответа ...

При запуске контейнера я получаю опубликованное сообщение порта:

Опубликованные порты: 8000 / tcp -> 127.0.0.1:8000

, а также чистый запуск при запуске launch.json debug

Проверка системыне выявлено проблем (0 молчаливых). 13 октября 2019 - 17:45:05 Django версия 2.2.6 с использованием настроек 'fpl-django.settings' Запуск сервера разработки с http://127.0.0.1:8000/ Выйти из сервера с помощью CONTROL-C.

Почему я не могу получить доступ к сайту по адресу: localhost: 8000?

devcontainer.json:

    // For format details, see https://aka.ms/vscode-remote/devcontainer.json or the definition README at
// https://github.com/microsoft/vscode-dev-containers/tree/master/containers/docker-existing-dockerfile
{
  "name": "Existing Dockerfile",
  // Sets the run context to one level up instead of the .devcontainer folder.
  "context": "..",
  // Update the 'dockerFile' property if you aren't using the standard 'Dockerfile' filename.
  "dockerFile": "../docker/dev/python/Dockerfile",
  // The optional 'runArgs' property can be used to specify additional runtime arguments.
  "runArgs": [
    // Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-in-docker for details.
    // "-v","/var/run/docker.sock:/var/run/docker.sock",
    // Uncomment the next line if you will be using a ptrace-based debugger like C++, Go, and Rust.
    // "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"
    // You may want to add a non-root user to your Dockerfile. On Linux, this will prevent
    // new files getting created as root. See https://aka.ms/vscode-remote/containers/non-root-user
    // for the needed Dockerfile updates and then uncomment the next line.
    // "-u", "vscode"
    "--network",
    "fpl-django_default"
  ],
  // Use 'settings' to set *default* container specific settings.json values on container create.
  // You can edit these settings after create using File > Preferences > Settings > Remote.
  "settings": {
    "terminal.integrated.shell.linux": "/bin/bash",
    "python.pythonPath": "/usr/local/bin/python",
    "python.linting.pylintEnabled": true,
    "python.linting.pylintPath": "/usr/local/bin/pylint",
    "python.linting.enabled": true
  },
  // Uncomment the next line if you want to publish any ports.
  "appPort": [
    8000
  ],
  // Uncomment the next line to run commands after the container is created - for example installing git.
  // "postCreateCommand": "apt-get update && apt-get install -y git",
  // Add the IDs of extensions you want installed when the container is created in the array below.
  "extensions": [
    "ms-python.python",
  ]
}

launch.json:

    {
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Python: Django",
      "type": "python",
      "request": "launch",
      "program": "${workspaceFolder}/manage.py",
      "console": "integratedTerminal",
      "args": [
        "runserver",
        "--noreload",
        "--nothreading"
      ],
      "django": true
    }
  ]
}

1 Ответ

1 голос
/ 19 октября 2019

Попробуйте запустить manage.py runserver с этим параметром: 0.0.0.0:8000, это скажет вашему приложению прослушать запрос с любого хоста. Вот так:

{
      "name": "Python: Django",
      "type": "python",
      "request": "launch",
      "program": "${workspaceFolder}/manage.py",
      "console": "integratedTerminal",
      "args": [
        "runserver",
        "0.0.0.0:8000",
        "--noreload",
        "--nothreading"
      ],
      "django": true
}
...