首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle应用程序容器上运行Django

在Oracle应用程序容器上运行Django
EN

Stack Overflow用户
提问于 2018-09-14 05:49:16
回答 2查看 358关注 0票数 0

我有一个现有的django项目,我正在尝试将其部署到Oracle的云服务应用容器中。

我跟随甲骨文指南做了这件事,但是本指南中缺少一些细节。具体来说,指南引用了一个app.py文件,该文件似乎来自本指南。但我看不出如何在django项目中使用它。

我尝试过替换对app.py的调用,以使用django的manage.py或wsgi.py文件,但Oracle服务器仍然未能启动。Oracle提供的服务器日志也不起作用,只是告诉我正在安装python包。

代码语言:javascript
复制
ACCS[web.1]: Content of APP_HOME [ /u01/app/ ] dir
ACCS[web.1]: total 96
ACCS[web.1]: -rw-r----- 1 apaas apaas 28423 May 17 10:51 readme.html
ACCS[web.1]: -rw-r----- 1 apaas apaas 40960 May 17 10:51 db.sqlite3
ACCS[web.1]: -rw-r----- 1 apaas apaas   355 Sep 10 13:26 manage.py
ACCS[web.1]: -rw-r----- 1 apaas apaas   254 Sep 10 13:28 DjangoProject.pyproj.user
ACCS[web.1]: -rw-r----- 1 apaas apaas  6990 Sep 10 13:28 DjangoProject.pyproj
ACCS[web.1]: -rw-r----- 1 apaas apaas   186 Sep 12 11:24 manifest.json
ACCS[web.1]: drwxr-x--- 1 apaas apaas    10 Sep 13 03:42 obj
ACCS[web.1]: drwxr-x--- 1 apaas apaas   160 Sep 13 03:42 app
ACCS[web.1]: drwxr-x--- 1 apaas apaas    94 Sep 13 03:42 DjangoProject
ACCS[web.1]: drwxr-xr-x 1 apaas apaas   286 Sep 13 03:42 .
ACCS[web.1]: drwxr-xr-x 1 apaas apaas    46 Sep 13 03:42 ..
ACCS[web.1]: -rw-r----- 1 apaas apaas   290 Sep 13  2018 start.sh
ACCS[web.1]: -rw-r----- 1 apaas apaas    51 Sep 13  2018 requirements.txt
ACCS[web.1]: Application should listen on 0.0.0.0:$PORT [enabling app to listen on all interfaces on $PORT env variable]
ACCS[web.1]: Starting application with launch command [ sh ./start.sh ]
APP[web.1]: Collecting Django==1.11.15 (from -r ./requirements.txt (line 1))
APP[web.1]:   Downloading https://files.pythonhosted.org/packages/f8/1c/31112c778b7a56ce18e3fff5e8915719fbe1cd3476c1eef557dddacfac8b/Django-1.11.15-py2.py3-none-any.whl (6.9MB)
APP[web.1]: Collecting pytz==2018.5 (from -r ./requirements.txt (line 2))
APP[web.1]:   Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
APP[web.1]: Collecting setuptools==39.0.1 (from -r ./requirements.txt (line 3))
APP[web.1]:   Downloading https://files.pythonhosted.org/packages/20/d7/04a0b689d3035143e2ff288f4b9ee4bf6ed80585cc121c90bfd85a1a8c2e/setuptools-39.0.1-py2.py3-none-any.whl (569kB)
APP[web.1]: Installing collected packages: pytz, Django, setuptools
APP[web.1]: Successfully installed Django-1.11.15 pytz-2018.5 setuptools-39.0.1
APP[web.1]: You are using pip version 9.0.1, however version 18.0 is available.
APP[web.1]: You should consider upgrading via the 'pip install --upgrade pip' command.

我在制作start.sh文件时也使用了start.sh。

代码语言:javascript
复制
#!/bin/sh
pip --no-cache-dir install -r ./requirements.txt -t modules
export PYTHONPATH=$PYTHONPATH:modules
python manage.py runserver

我已经联系了Oracle的支持部门,但他们也无法找到解决方案。他们的建议包括服务器在wsgi.py文件中使用的端口变量,我曾尝试过。

代码语言:javascript
复制
import os
import sys

from django.core.management import call_command
from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoMedmin.settings")
application = get_wsgi_application()

PORT_NUMBER = int(os.environ.get('PORT', 8084))
call_command('runserver',  '0.0.0.0:'+str(PORT_NUMBER))

我遗漏了什么?是否有可能让django与Oracle一起工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-24 06:12:59

在Oracle支持的帮助下,我设法让Django开发了一个应用程序容器。

问题在于ALLOWED_HOSTS变量在settings.py中。我发现的教程都建议使用ALLOWED_HOSTS = ['*']。这不管用。

为了让Django正常工作,我需要将特定的URL Oracle分配给应用程序容器。所以有点像ALLOWED_HOSTS = ['ProjectName-AccountName.oracle-region-0.oraclecloud.com']

票数 0
EN

Stack Overflow用户

发布于 2018-09-14 07:40:57

该指南无疑是误导和混合Django和酒瓶。

runserver命令只用于本地机器上的开发,不适合生产使用。您必须使用某种WSGI服务器来运行Django应用程序。

我建议你用gunicorn

  1. 在你的requirements.txt中添加古尼科恩
  2. 在你的start.sh里开始吧: pip -无缓存-dir安装-r ./Requiments.txt -t模块导出PYTHONPATH=$PYTHONPATH:modules gunicorn -b $PORT DjangoProject.wsgi

(免责声明:在阅读你的问题之前,我甚至不知道甲骨文ACCS的存在)

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

https://stackoverflow.com/questions/52325662

复制
相关文章

相似问题

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