Cron 未从 docker 容器运行...失败

Cron 未从 docker 容器运行...失败

我正在尝试在 docker 容器中创建一个 cron 任务。一切都根据 @VonC 的配置进行配置回答
我的 dockerfile 看起来像这样

FROM python:3.6.9


WORKDIR usr/src/mydir
COPY requirements.txt .

# Add crontab file in the cron directory
ADD crontab /etc/cron.d/hello-cron

# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron

# Create the log file to be able to run tail
RUN touch /var/log/cron.log

#Install Cron
RUN apt-get update
RUN apt-get -y install cron

# Run the command on container startup
CMD cron && tail -f /var/log/cron.log

RUN pip install --no-cache-dir -r requirements.txt
COPY . .

但 cron 服务默认不启动

[FAIL] cron is not running ... failed!

cron 服务在从容器中明确推送后开始工作

service cron start

怎么了?

答案1

已经很接近了,这是修改后的 Dockerfile,它不会出现错误并启动 cron:

FROM python:3.6.9

# Add crontab file in the cron directory
ADD crontab /etc/cron.d/hello-cron

# Give execution rights on the cron job
RUN chmod 0644 /etc/cron.d/hello-cron


#Install Cron
RUN apt-get update
RUN apt-get -y install cron

# Create the log file to be able to run tail
RUN touch /var/log/cron.log

# Run the command on container startup
CMD /etc/init.d/cron start && tail -f /var/log/cron.log

话虽如此,如果你只是测试一下,这个 Dockerfile 还是不错的。但是,要在生产环境中运行,你可能需要研究服务是如何在 docker 镜像中捆绑的(使用 exec 等)

相关内容