【问题标题】:Python Script with Cronjob in Docker Container can't find Modules在 Docker 容器中使用 Cronjob 的 Python 脚本找不到模块
【发布时间】:2020-07-31 00:53:09
【问题描述】:

如果我在我的容器中运行一个 pythonscript,它运行没有任何问题。但是当我将它作为 cronjob 运行时,它会抛出一个错误,它没有找到任何模块。你有什么想法为什么?

码头文件

FROM python:3.5.2

RUN apt-get update \
    && apt-get install -y cron \
    && apt-get autoremove -y

RUN pip install --upgrade pip && \
    pip install --no-cache-dir image pytesseract numpy XlsxWriter pandas requests && \
    pip install --no-cache-dir med2image datetime IPython matplotlib

# Create a volume
VOLUME /logSent

# Copy Scriptfile
COPY script.py ./script.py

# Copy cron file to the cron.d directory
COPY cronpy /etc/cron.d/cronpy
# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/cronpy
# Apply cron job
RUN crontab /etc/cron.d/cronpy

CMD ["cron", "-f"]

cronpy

*/10 * * * * python /script.py > /proc/1/fd/1 2>/proc/1/fd/2
# Empty line

【问题讨论】:

标签: python docker cron


【解决方案1】:

尝试在cronpy 中为 python 使用绝对路径,例如

*/10 * * * * /usr/bin/python /script.py > /proc/1/fd/1 2>/proc/1/fd/2

【讨论】:

  • 谢谢,但仍然有异常“ImportError: No module named ...”
  • @Bsel 您是否确保使用与手动运行可执行文件时相同的 python 可执行文件?我看到python:3.5.2图像中的默认python是/usr/local/bin/python
【解决方案2】:

好的,当我使用 ubuntu-image 并自己安装 python 而不是它正确运行的 python-image 时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-21
    • 2021-10-08
    • 2018-06-05
    • 2020-01-18
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多