首页 > 解决方案 > 使用 docker 在 heroku 中部署 Django api rest

问题描述

我正在尝试使用 docker 访问我在 Heroku 中发布的 Api rest,并看到 Dynos 正在运行我放入 Dockerfile 中的 gunicorn 命令。我使用的 Dockerfile 是:

FROM ubuntu:18.04

RUN apt update
RUN apt install -y python3 python3-pip
RUN mkdir /opt/app

ENV PYTHONUNBUFFERED 1
ENV LANG C.UTF-8
ENV DEBIAN_FRONTEND=noninteractive 

COPY Ski4All/ /opt/app/
COPY requirements.txt /opt/app/
RUN pip3 install -r /opt/app/requirements.txt
ENV PORT=8000

CMD exec gunicorn Ski4All.wsgi:application — bind 0.0.0.0:$PORT

当我释放时,我通过进入容器heroku run bash -a "name app"并执行ps aux我没有看到 api 正在运行。但是如果我在容器中时执行我的 Dockerfile 的命令。

任何想法?

标签: pythondjangodockerherokudjango-rest-framework

解决方案


@jhaos 提到 gunicorn 在根路径中运行

更改以下内容Dockerfile

RUN mkdir /opt/app to WORKDIR /opt/app
COPY Ski4All/ /opt/app/ to COPY Ski4All .

推荐阅读