root로 cron 설치하고 필요한 곳들 퍼미션 변경한 다음 일반적인 방식으로 crond 실행하면 됨.

 

Dockerfile은 대충 이렇게

FROM centos:7
 
USER root
 
# cron 설치
RUN yum install -y cronie
 
# 여기가 핵심
RUN chmod gu+rw /var/run && chmod gu+s /usr/sbin/crond
 
# nonroot 라는 user로 실행한다 치고
USER nonroot
 
ENTRYPOINT [ "/PATH/TO/entrypoint.sh" ]
 
CMD tail -f /dev/null

 

 

entrypoint.sh 는 대충 이렇게

#!/bin/bash
 
# 어떤 식으로든 cron 등록
/usr/bin/crontab /PATH/TO/cronfile
 
# crond 실행
/usr/sbin/crond
 
exec "$@"

 

 

 

 

 

Posted by bloodguy

댓글을 달아 주세요