在Docker中執行crontab

2021-09-10 01:35:39 字數 1104 閱讀 6099

在把自己的專案通過docker進行打包時,由於專案中用到了crontab,不過使用到的基礎映象python:3.6-slim並沒有安裝這項服務,記錄下在映象中安裝和配置crontab的過程。

由於基礎映象中沒有crontab服務,需要在打包自己映象的dockerfile中加入安裝cron服務的步驟。

from python:3.6-slim

maintainer whx3000 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中就可以正常讀取了。

在Docker中執行Sphinx基礎

該文原文為 sphinx in docker.the basics.發表於 留心一下網際網路,你會發現一些關於docker的訊息。docker是乙個幫助開發者和系統管理員構建 封裝和執行分布式應用的開源平台。在這篇部落格中,我會就如何在乙個docker容器內使用sphinx,建立乙個基本的例項。什麼...

在OS X上執行Docker

brew update brew install docker brew install boot2docker docker剛開始推出的時候,只支援ubuntu。因為docker依賴於linux container,預設是不支援os x系統的。因此如果我們想在os x上使用docker,就必須借助...

Docker容器中執行docker 命令

一 在一台執行了docker的伺服器上,啟動374c3bec1f4b 映象的容器,這個映象中安裝docker yum install docker y docker run itd v var run docker.sock var run docker.sock name docker test ...