python - Docker 在 Heroku 中部署错误 - 权限被拒绝

标签 python linux docker heroku docker-entrypoint

我想使用 Docker 在 Heroku 中部署网页。我有两个入口点

ENTRYPOINT ["/app/entrypoint.sh"]
ENTRYPOINT ["/app/yt_bot.py"]

第一个入口点完美运行

enter image description here

但是当它到达第二个入口点时,它抛出一个错误:Permission denied

enter image description here

这是 yt_bot.py 的代码:

from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://www.youtube.com/')

我已经在 usr/local/bin 中安装了 Firefox 网络驱动程序。错误可能与此有关吗?

编辑

这是我的 Dockerfile:

FROM debian:stretch
# Install git, supervisor, VNC, & X11 packages
RUN set -ex; \
    apt-get update; \
    apt -y install python-pip; \
    pip install selenium; \
    apt-get -y install wget; \
    wget https://github.com/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-linux64.tar.gz; \
    tar xvf geckodriver-v0.29.1-linux64.tar.gz; \
    mv geckodriver usr/local/bin; \
    rm geckodriver-v0.29.1-linux64.tar.gz; \
    export PATH=$PATH:/usr/local/bin/geckodriver; \
    wget https://download1320.mediafire.com/p27lunltbdqg/vu5daioshg687nx/yt_bot.py; \
    apt-get install -y \
      bash \
      fluxbox \
      git \
      net-tools \
      novnc \
      socat \
      supervisor \
      x11vnc \
      xterm \
      xvfb
ENV HOME=/root \
    DEBIAN_FRONTEND=noninteractive \
    LANG=en_US.UTF-8 \
    LANGUAGE=en_US.UTF-8 \
    LC_ALL=C.UTF-8 \
    DISPLAY=:0.0 \
    DISPLAY_WIDTH=1024 \
    DISPLAY_HEIGHT=768 \
    RUN_XTERM=yes \
    RUN_FLUXBOX=yes
COPY . /app
RUN chmod +x /app/conf.d/websockify.sh
ENTRYPOINT ["/app/entrypoint.sh"]
ENTRYPOINT ["/app/yt_bot.py"]

最佳答案

将以下行添加到您的 Dockerfile 以便以 root 用户身份运行命令。

...
USER root # add this line before entry points
ENTRYPOINT ["/app/entrypoint.sh"]
ENTRYPOINT ["/app/yt_bot.py"]

关于python - Docker 在 Heroku 中部署错误 - 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68237095/

相关文章:

file-upload - dockerized web 应用程序应该在哪里存储上传的文件?

deployment - Kubernetes 部署。如何更改容器环境变量以进行滚动更新?

python - python中函数的准确计时

python - dev_appserver.py 打开一个文本文件,不部署

python - pip 安装抛出 MissingSectionHeaderError

linux - 在 Linux 中将换行符附加到目录中的所有文件

linux - Rpm 规范文件。运行 yum groupinstall

linux - 如何使用 opencv 和 qt 为 Yocto linux 镜像编译程序?

nginx - 使用 jwilder nginx-proxy,如何将子目录 url 代理传递到特定容器?

python - Django:如何在数据库中存储日期列表和某人当天听的歌曲?