2016-01-23 50 views
1

我使用的碼頭工人和OS是Ubuntu Linux系統。我怎能的crontab文件在Ubuntu搬運工

如果我使用有crontab -e和地點數據,那麼cron的運行正常。

* * * * * /var/www/daily.sh 

但如果去掉容器那麼crontab中也不見了。我想以某種方式將crontab放置在某個文件中,例如crontabs.sh,然後將其安裝到容器中,以便如果創建容器,那麼我的cron仍然存在。

我不知道在什麼位置,我需要掛接,這樣的cron正常運行。像

/myhost/code/crontabs.sh: /etc/crons.daily

回答

1

正如this answer提到的,您可以複製文件,添加到您的Dockerfile

FROM ubuntu:latest 
MAINTAINER [email protected] 

# Add crontab file in the cron directory 
COPY crontab /etc/cron.d/crons.daily 

# Give execution rights on the cron job 
RUN chmod 0644 /etc/cron.d/hello-cron 

# Create the log file to be able to run tail 
RUN touch /var/log/cron.log 

# Run the command on container startup 
CMD cron && tail -f /var/log/cron.log 

(來源:例如 「Run a cron job with Docker」(由Julien Boulay

這樣,您的圖片將始終包含正確的cron定義。

可以初始化的「crontab」,本地文件要複製到你的形象,與cronsandbox.com內容。

你的情況:0 23 * * *


如果你不想讓每個變化的新形象,爲您免除COPY線,並安裝該文件在運行時:

docker run -v crontab:/etc/cron.d/hello-cron -n mycontainer myimage 

這樣,本地文件crontab安裝在容器爲/etc/cron.d/hello-cron(或任何你想要的其他名字)。
每當你改變它,停止並重新啓動你的容器。

+0

我讀過cron.daily在6.30或730Am運行。但我想在11PM運行。 –

+0

此外,我希望cronfile成爲源代碼的一部分,以便我可以編輯它。如果我把泊塢窗文件,它會很難編輯初始圖像後創建 –

+0

@JohnKaff我正在編輯的答案。 cron文件將成爲您的資源的一部分。每次修改它時,重建圖像。 – VonC