[我正在尝试访问我在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的命令。
任何想法?
问题是,gunicorn命令在/根路径中运行,而不是在正确的工作目录中运行。 @HariHaraSuhan在评论中解决了该错误。
@ jhaos提到gunicorn在根目录中运行
在Dockerfile
中更改以下内容
RUN mkdir /opt/app to WORKDIR /opt/app
COPY Ski4All/ /opt/app/ to COPY Ski4All .