国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

在Docker中運行crontab

2019-02-17 20:13:41 9269

在把自己的項目通過(guò)Docker進(jìn)行打包時(shí),由于項目中用到了crontab,不過(guò)使用到的基礎鏡像Python:3.6-slim并沒(méi)有安裝這項服務(wù),記錄下在鏡像中安裝和配置crontab的過(guò)程。

Dockerfile

由于基礎鏡像中沒(méi)有crontab服務(wù),需要在打包自己鏡像的Dockerfile中加入安裝cron服務(wù)的步驟。

FROM python:3.6-slim

MAINTAINER linuxidc root@landui.com

RUN apt-get update && \

    apt-get install -y --no-install-recommends \

    cron && \

    rm -rf /var/lib/apt/lists/* && \

    apt-get clean


RUN chmod +x ./docker-entrypoint.sh


ENV LC_ALL C.UTF-8

ENTRYPOINT ["./docker-entrypoint.sh"]


執行apt安裝時(shí)注意加入-y --no-install-recommends,并且在安裝完成后執行rm -rf /var/lib/apt/lists/* && apt-get clean命令,可以有效減小鏡像的體積。


這樣安裝完cron服務(wù)后,crontab服務(wù)并不會(huì )自啟動(dòng),還需要一個(gè)docker-entrypoint.sh啟動(dòng)腳本來(lái)添加crontab的啟動(dòng)命令。


啟動(dòng)腳本

#!/bin/bash

set -x


# 保存環(huán)境變量,開(kāi)啟crontab服務(wù)

env >> /etc/default/locale

/etc/init.d/cron start


/etc/init.d/cron start用于啟動(dòng)crontab服務(wù),但這樣啟動(dòng)的crontab服務(wù)中配置的定時(shí)命令是沒(méi)有Dockerfile中設置的環(huán)境變量的。因此還需要在這之前執行env >> /etc/default/locale,這樣有Dockerfile中通過(guò)ENV設置的環(huán)境變量在crontab中就可以正常讀取了。


提交成功!非常感謝您的反饋,我們會(huì )繼續努力做到更好!

這條文檔是否有幫助解決問(wèn)題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問(wèn)題:
-->