【发布时间】:2021-07-03 14:23:03
【问题描述】:
我想使用 Docker 在 Heroku 中部署一个网页。我有两个入口点
ENTRYPOINT ["/app/entrypoint.sh"]
ENTRYPOINT ["/app/yt_bot.py"]
第一个入口点完美运行
但是当它到达第二个入口点时,它会抛出一个错误:Permission denied
这是 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"]
【问题讨论】:
-
你在 Docker 容器中安装 webdriver 吗?请分享你的 Dockerfile
-
我现在已经添加了我的 Dockerfile
-
你可以在
app/yt_bot.py上运行 chmod +x 然后重建镜像吗?我猜 yt_bot.py 中缺少可执行权限 -
在 yt_bot.py 中运行 Chmod +x 解决了这个问题。谢谢!
标签: python linux docker heroku docker-entrypoint