所以我正在执行以下操作:
创建了一个Dockerfile和一个docker-compose.yml来在本地开发一个django应用程序,这里没什么可做的,一切正常.
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
运行mkdir /代码
WORKDIR /代码
ADD requirements.txt/code/
RUN pip install -r requirements.txt
ADD./码/
它所做的只是获取python3图像,将源文件夹中的代码复制到docker镜像
然后我尝试将其部署到heroku,所以我在heroku应用程序上添加了postgres附加组件,并使用dj_database_url配置它,并在我的settings.py文件中使用以下命令:
DATABASES = {}
DATABASES['default'] = dj_database_url.config()
之后,我将我的应用程序推送到heroku使用heroku container:push web
,它被推到我的应用程序没有任何问题...
最后一块是当我用heroku open
它打开我的应用程序时说我收到了一个错误:Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details.
这是在heroku网站上打印的内容
现在,当我记录使用时heroku logs -t
,它表示已退出代码0,然后崩溃
我错过了什么?
heroku run web python manage.py migrate
它时,迁移heroku应用程序上的数据heroku run web python manage.py runserver
它时说运行在127.0.0.1:8000编辑1: 如果你想重现这个问题,可以在下面的git repo中克隆我的所有代码:https://github.com/giovanniKleinCampigoto/djangoherokuproblem.git
编辑2:
在这个官方教程:https://devcenter.heroku.com/articles/deploying-python,说使用virtualenv,但我使用的是docker,所以我真的不知道如何继续...
编辑3:
此外,我注意到,当我使用以下方法将图像推送到heroku时:heroku容器:推送web,服务器重新部署,但不是运行procfile上的任何内容,而只是记录它:使用命令启动进程python3
]
编辑4:
当运行heroku local web
,并编辑Procfile运行docker-compose up
工作正常,问题是上传到heroku的服务器...不知道我是否应该编辑文件到python manage.py runserver ...
泊坞窗,compose.yml
version: '2'
services:
web:
build: .
env_file: composeexample/.env
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
Run Code Online (Sandbox Code Playgroud)
Gio*_*oto 11
我怎么也找不到这个我正在回答我自己的问题,所以其他人可以使用我的解决方案......
好的,经过大量的测试,来来往往我发现了这个问题.
所以发生了以下情况:对于本地开发,您应该使用docker-compose,mount卷和所有美味的东西,但是当使用heroku进行生产时,您需要为服务器启动设置命令.所以,如果您计划在heroku上使用docker + django + postgres附加组件设置项目.执行以下步骤.
首先:
settings.py
编辑1:
你不需要gunicorn作为依赖项,你在Procfile中应该拥有的唯一命令是:web:python3 manage.py runserver
归档时间: |
|
查看次数: |
3591 次 |
最近记录: |