docker容器中cron任務(wù)未執(zhí)行的原因分析及解決
前提
- cron正確安裝: apt-get cron
- cron-job格式正確:*/1 * * * * /bin/sh xxx
- cron-job的文件位置正確:/var/spool/cron/crontabs/root
現(xiàn)象
在宿主機(jī)安裝能成功,反復(fù)檢查沒(méi)問(wèn)題,只要安裝到ubuntu:22.04鏡像中就執(zhí)行不了
(無(wú)解)解決一:pam權(quán)限問(wèn)題
網(wǎng)上有部分是這原因,但我不是~
RUN echo '*/1 * * * * /bin/sh xxx.sh'>>/var/spool/cron/crontabs/root RUN sed -i '/session required pam_loginuid.so/c\#session required pam_loginuid.so' /etc/pam.d/cron
(可行)解決二:動(dòng)態(tài)加載到cron執(zhí)行任務(wù)中
此方法測(cè)試可行,強(qiáng)制加入文件到crontab執(zhí)行任務(wù)中,且文件的位置可任意指定
RUN echo '*/1 * * * * /bin/sh xxx.sh'>>/var/spool/cron/crontabs/root RUN crontab /var/spool/cron/crontabs/root
(推薦,最終原因)解決三:job文件權(quán)限修改為600
/var/spool/cron/crontabs下的文件必須是600(-rw-------)的文件權(quán)限,而不應(yīng)該使用容器的644權(quán)限(容器里一般umask=0022),權(quán)限低的能執(zhí)行成功,權(quán)限高的反而執(zhí)行失敗。
此種方法使用了cron默認(rèn)操作方式,推薦使用。
RUN echo '*/1 * * * * /bin/sh xxx.sh'>>/var/spool/cron/crontabs/root \
&& chmod 600 /var/spool/cron/crontabs/root
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用docker創(chuàng)建集成服務(wù)lnmp環(huán)境
本篇文章主要介紹了使用docker創(chuàng)建集成服務(wù)lnmp環(huán)境,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
CentOS8上用Docker部署開(kāi)源項(xiàng)目Tcloud的教程
這篇文章主要介紹了CentOS8上用Docker部署開(kāi)源項(xiàng)目Tcloud,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
詳解使用export/import導(dǎo)出和導(dǎo)入docker容器
本篇文章主要介紹了詳解使用export/import導(dǎo)出和導(dǎo)入docker容器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
docker網(wǎng)絡(luò)端口映射的實(shí)現(xiàn)步驟
本文主要介紹了docker網(wǎng)絡(luò)端口映射的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
docker swarm 集群創(chuàng)建過(guò)程
通過(guò)docker swarm 工具將一臺(tái)或者多臺(tái)安裝了docker的服務(wù)器組成一個(gè)完整的集群,該集群中的node節(jié)點(diǎn)可以通過(guò)Leader節(jié)點(diǎn)管理,這篇文章主要介紹了docker swarm 集群創(chuàng)建,需要的朋友可以參考下2024-03-03
docker配置openGauss數(shù)據(jù)庫(kù)的方法詳解
這篇文章主要介紹了docker配置openGauss數(shù)據(jù)庫(kù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
docker安裝redis并以配置文件方式啟動(dòng)詳解
這篇文章主要介紹了docker安裝redis并以配置文件方式啟動(dòng)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12

