【发布时间】:2019-10-31 08:23:46
【问题描述】:
我在本地使用 Docker 进行 Django 开发,并尝试使用 Heroku 来deploy with Docker。但是我收到了关于“没有运行 Web 进程”的抱怨,也就是没有 Dynos 启动。所以不知何故错过了这个配置,但在 Heroku 或那里的一些教程上没有提到它。
Dockerfile:
FROM python:3.7-slim
# Set environment varibles
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies
COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
# Copy project
COPY . /code/
heroku.yml
setup:
addons:
- plan: heroku-postgresql
build:
docker:
web: Dockerfile
run:
web: python /code/manage.py runserver 0.0.0.0:$PORT
我怀疑问题出在heroku.yml 的run 部分,但非常卡住。
【问题讨论】:
-
旁注,您不应该在生产中使用
manage.py runserver。安装一个 WSGI 服务器(gunicorn将是一个流行的选择)并使用它。见docs.djangoproject.com/en/2.2/howto/deployment/wsgi