首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地址已在使用中(Errno 98)使用vscode和docker的django

地址已在使用中(Errno 98)使用vscode和docker的django
EN

Stack Overflow用户
提问于 2018-06-21 04:27:51
回答 1查看 1.4K关注 0票数 1

我有一个带有django的python应用程序,我在一个docker容器中运行它。我需要调试这个应用程序,每次我做docker-compose时,它都会在下面给出这个错误。我查看了几个关于如何调试的网站,没有一个解决方案对我有帮助。有人知道它会是什么吗?我认为你需要评估的最重要的文件在下面,如果有更多的需要,我会编辑这篇文章。我使用的是django 2.0.1,ptvsd 3.2.1和Docker-Toolbox。

代码语言:javascript
复制
File "manage.py", line 10, in <module>    ptvsd.enable_attach(secret='my_secret', address = ('192.168.99.100', 3000))
File "/usr/local/lib/python3.6/site-packages/ptvsd/__init__.py", line 87, in enable_attach
return _attach_server().enable_attach(secret, address, certfile, keyfile, redirect_output)
File "/usr/local/lib/python3.6/site-packages/ptvsd/attach_server.py", line 109, in enable_attach
server.bind(address)
OSError: [Errno 99] Cannot assign requested addres

S

manage.py:

代码语言:javascript
复制
#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "chatire.settings")
    try:
        from django.core.management import execute_from_command_line
        import ptvsd
        ptvsd.enable_attach(secret='my_secret', address = ('192.168.99.100', 3000))
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc



    execute_from_command_line(sys.argv)

docker-compose.yml:

代码语言:javascript
复制
version: '3'
services:
  db:
    image: postgres
  backend:
    build: .
    command: bash app.sh
    volumes:
      - .:/code
    ports:
      - "3000:3000"
      - "8000:8000"
    depends_on:
      - db
  frontend:
    build: ./chatire-frontend
    command: bash front.sh
    volumes:
      - ./chatire-frontend:/to-do-app
    ports:
      - "8080:8080"
      - "8081:8081"
  rabbit1:
    image: "rabbitmq:3-management"
    hostname: "rabbit1"
    environment:
      RABBITMQ_ERLANG_COOKIE: "SWQOKODSQALRPCLNMEQG"
      RABBITMQ_DEFAULT_USER: "guest"
      RABBITMQ_DEFAULT_PASS: "guest"
      RABBITMQ_DEFAULT_VHOST: "/"
    ports:
      - "15672:15672"
      - "5672:5672"
    labels:
      NAME: "rabbitmq1"
    volumes:
      - "./rabbitmq-compose/enabled_plugins:/etc/rabbitmq/enabled_plugins"
      #- "./rabbitmq.config:/etc/rabbitmq/rabbitmq.config:ro"
      #- "./autocluster-0.4.1.ez:/usr/lib/rabbitmq/lib/rabbitmq_server-3.5.5/plugins/autocluster-0.4.1.ez"

Dockerfile

代码语言:javascript
复制
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
EXPOSE 3000

requirements.txt:

代码语言:javascript
复制
amqp==2.2.2
billiard==3.5.0.3
celery==4.1.0
Django==2.0.1
django-cors-headers==2.1.0
django-notifs==2.6.0
django-templated-mail==1.0.0
djangorestframework==3.7.7
djangorestframework-jwt==1.11.0
djoser==1.1.5
gevent==1.2.2
greenlet==0.4.12
kombu==4.1.0
pika==0.11.2
PyJWT==1.6.1
pytz==2017.3
simplejson==3.13.2
six==1.11.0
uWSGI==2.0.15
vine==1.1.4
psycopg2==2.7.4
psycopg2-binary==2.7.4
ptvsd==3.2.1 
EN

回答 1

Stack Overflow用户

发布于 2019-08-07 23:30:05

来自quinox在Github (https://github.com/Microsoft/PTVS/issues/1057#issuecomment-421549892)上的回答:

要使用自动重新加载功能,您可以使VSCode仅附加到主进程中。基于Django的utils/autoreload.py和Django-Extensions的management/commands/runserver_plus.py:

if os.environ.get('RUN_MAIN') or os.environ.get('WERKZEUG_RUN_MAIN'): ptvsd.enable_attach(address=('0.0.0.0', 7913), redirect_output=True)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50956539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档