使用docker在heroku中部署Django api rest

问题描述 投票:0回答:2

[我正在尝试访问我在docker中与Heroku一起发布的Api其余部分,并看到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的命令。

任何想法?

python django docker heroku django-rest-framework
2个回答
0
投票

问题是,gunicorn命令在/根路径中运行,而不是在正确的工作目录中运行。 @HariHaraSuhan在评论中解决了该错误。


0
投票

@ jhaos提到gunicorn在根目录中运行

Dockerfile中更改以下内容

RUN mkdir /opt/app to WORKDIR /opt/app
COPY Ski4All/ /opt/app/ to COPY Ski4All .
© www.soinside.com 2019 - 2024. All rights reserved.