手机看片精品高清国产日韩,色先锋资源综合网,国产哺乳奶水91在线播放,乱伦小说亚洲色图欧洲电影

在Docker中運行crontab

2019-02-17 20:13:41 14762

在把自己的項目通過Docker進行打包時,由于項目中用到了crontab,不過使用到的基礎鏡像Python:3.6-slim并沒有安裝這項服務,記錄下在鏡像中安裝和配置crontab的過程。

Dockerfile

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

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


這樣安裝完cron服務后,crontab服務并不會自啟動,還需要一個docker-entrypoint.sh啟動腳本來添加crontab的啟動命令。


啟動腳本

#!/bin/bash

set -x


# 保存環境變量,開啟crontab服務

env >> /etc/default/locale

/etc/init.d/cron start


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


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

這條文檔是否有幫助解決問題?

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

在文檔使用中是否遇到以下問題: