我有两台服务器。我正在尝试为我的主网站服务器设置一个持续集成
Web server 1(cloud-hosting): Python3.6 Django3.1 Ubuntu16.04 Webserver 2(VPS): Python3.7 Django3.1 Ubuntu16.04 Jenkins --ShiningPanda(plugin)
我是网络开发新手,所以如果我的网络服务器类型看起来很奇怪,那就是为什么。我一直在关注Python的测试驱动开发这本书。我的问题是,在运行python manage.py test [app]
时,我的[app]继承自StaticLiveSever类以生成测试环境。在Web服务器1上,这可以正常工作。在WebServer2上,我得到一个错误,无法分配请求地址。我使用jenkins构建环境,但得到的错误是OSerror[99]:cannot assign requested address
。当我在Web服务器1中运行相同的命令时,我不明白为什么会发生这种情况。它运行良好。尽管如此,这些命令还是由jenkins运行,并且jenkins被配置为运行python3.7
完全回溯(主要问题)
Traceback (most recent call last):
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/django/test/testcases.py", line 1449, in setUpClass
raise cls.server_thread.error
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/django/test/testcases.py", line 1374, in run
self.httpd = self._create_server()
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/django/test/testcases.py", line 1389, in _create_server
return ThreadedWSGIServer((self.host, self.port), QuietWSGIRequestHandler, allow_reuse_address=False)
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/django/core/servers/basehttp.py", line 67, in __init__
super().__init__(*args, **kwargs)
File "/usr/lib/python3.7/socketserver.py", line 452, in __init__
self.server_bind()
File "/usr/lib/python3.7/wsgiref/simple_server.py", line 50, in server_bind
HTTPServer.server_bind(self)
File "/usr/lib/python3.7/http/server.py", line 137, in server_bind
socketserver.TCPServer.server_bind(self)
File "/usr/lib/python3.7/socketserver.py", line 466, in server_bind
self.socket.bind(self.server_address)
OSError: [Errno 99] Cannot assign requested address
在硬编码主机之后
Traceback (most recent call last):
File "/var/lib/jenkins/workspace/Superlists/functional_tests/base.py", line 47, in setUp
self.browser = webdriver.Firefox()
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__
self.service.start()
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 100, in start
self.assert_process_still_running()
File "/var/lib/jenkins/shiningpanda/jobs/ddc1aed1/virtualenvs/d41d8cd9/lib/python3.7/site-packages/selenium/webdriver/common/service.py", line 113, in assert_process_still_running
% (self.path, return_code)
selenium.common.exceptions.WebDriverException: Message: Service geckodriver unexpectedly exited. Status code was: 69
geckodriver.log,带有LiveTestServer中硬编码的主机ip
eckodriver: error: Address not available (os error 99)
geckodriver 0.27.0 (7b8c4f32cdde 2020-07-28 18:16 +0000)
WebDriver implementation for Firefox
USAGE:
geckodriver [FLAGS] [OPTIONS]
[...]
希望上面的回溯不会太混乱。另外,我注意到当im在webserver 2中时,我访问了Django testcases.py模块,该模块具有LiverServerThread和硬代码host=0.0.0.0
,而不是host=localhost
(第一次回溯)。然后建立连接,尽管问题在于geckodriver和同样的东西(第二次回溯)。我需要硬编码IP0.0.0.0才能建立连接,但是geckodriver只是在一个完全不同的位置(这里没有显示error.log)侦听,我假设是这样
因此,我希望至少能够建立一个连接来正确运行LiveServerThread类。然后试着用geckodriver解决这个问题。我也不确定我运行的服务器类型是否构成问题
目前没有回答
相关问题 更多 >
编程相关推荐