簡體   English   中英

cron.d中的Crons無法在Docker Container中運行的Ubuntu上運行

[英]Crons in cron.d won't run on Ubuntu running inside Docker Container

我寫了一個很小的程序,主要由Scrapy刮板組成。 我將其包裝在docker容器中,需要cron調用刮板。

我的docker-compose文件是:

version: '2'
services:
  admin-panel:
    env_file: ./Admin-Panel/.env
    build: ./Admin-Panel/
    volumes:
      - ./Admin-Panel/app:/code/app
      - ./Admin-Panel/flaskadmin.py:/code/flaskadmin.py
    ports:
      - "5000:5000"
  scraper:
    env_file: ./Admin-Panel/.env
    build: ./Scraper/
    volumes:
      - ./Scraper/spiders:/spiders

我的Scraper Dockerfile是:

FROM ubuntu:latest
ENV TERM xterm

RUN apt-get update
RUN apt-get install -y python3-pip python3.5-dev build-essential  
RUN apt-get install -y libssl-dev nano cron libpq-dev libffi-dev curl

ADD ./requirements /requirements
ADD crontab /etc/cron.d/scrapers

RUN pip3 install --upgrade pip
RUN pip3 install -r /requirements/base.txt

RUN touch /var/log/cron.log

CMD cron && tail -f /var/log/cron.log

我的crontab是(帶有尾隨新行):

* * * * * root /usr/local/bin/scrapy runspider /spiders/myspider.py
* * * * * root /bin/date >> /tmp/cron_output

當在運行Sierra的Mac上本地運行時,此方法效果很好,但是當我在運行Amazon Linux AMI的Amazon EC2實例中放置時,不會調用cron。 我使用Filezilla將文件從Mac傳輸到我的Amazon EC2實例。

AWS EC2:

Docker版本1.12.6,內部版本7392c3b / 1.12.6

我的MacBook:

Docker版本17.03.0-CE,內部版本60ccb22

如果我添加線

* * * * * root /bin/date >> /tmp/cron_output

使用crontab -e也不會發生任何事情。 文件cron.log為空。

更新:

我安裝了rsyslog,然后啟動了它:

service rsyslog start

現在在/ var / log / syslog中

3月25日21:49:01 4406b0e05b9f CRON [464]:無法為指定會話創建/刪除條目

我終於找到了一個解決方案,這要感謝https://github.com/sameersbn/docker-gitlab/issues/173

我在/etc/pam.d/cron中注釋了以下行

session    required     pam_loginuid.so

只需要弄清楚如何在docker-compose上自動執行此操作即可。

嘗試向Dockerfile添加權限,例如,

RUN chmod 0744 /spiders/myspider.py /etc/cron.d/scrapercron

並更改crontab的位置

ADD scrapercron /etc/cron.d

然后在您的crontab中...

HOME=/spiders * * * * * root /spiders/myspider.py >> /tmp/cron_output 2>&1

要進行測試,請嘗試輸出到該tmp文件

CMD cron && tail -f /tmp/cron_output

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM