创建过程

基础镜像采用的centos7.2,需要安装一下crontab,在dockerfile中加以下语句就可以了:

# crontab jobs
RUN yum -y install crontabs
ADD ./run/nlp-cron /etc/cron.d/nlp-cron
RUN chmod 0644 /etc/cron.d/nlp-cron
RUN crontab /etc/cron.d/nlp-cron

其中nlp-cron是定时任务的配置,内容是下面这样的:

* * * * *  sh test.sh >/dev/null 2>&1

后来启动了镜像,发现定时任务并不能正常启动,于是开启了漫长的排错过程。

排错1

首先进入docker的容器,用crontab -l看了一下,任务实际上是存在的,可以证明是任务没有启动/执行成功而已。

同时在容器中,执行了一下想要做的操作,发现没有任何问题,说明代码没有问题。

排错2

创建镜像的过程是参考这里做的,按理说不缺什么步骤,于是又按照他的过程重新弄了一下,发现系统命令可以执行。

此时又问了一下同事,说最好用全路径。我本身执行的是python命令,于是whereis python找了一下全路径,改了之后,发现还是没有执行成功。

于是在py文件里加了各种print,发现一个问题写文件的操作不能执行……经同事提醒,试了一下全路径,居然改好了。

排错3

过了2天,功能完善后,想打包再试一下,发现又不行了……这次日志显示的是缺一个环境变量,于是找了半天办法。最终,在bash_profile中添加了环境变量,才解决了这个问题。

export LD_LIBRARY_PATH=/usr/lib/xxx:$LD_LIBRARY_PATHexport PATH

排错4

在排错期间,网上很多人说到是权限验证的问题。要改下面这个地方,/etc/pam.d/crond:

#
# The PAM configuration file for the cron daemon
#
#
# No PAM authentication called, auth modules not needed
account    required   pam_access.so
account    include    password-auth
session    sufficient   pam_loginuid.so
session    include    password-auth
auth       include    password-auth

排错5

打包之后,起了容器,可能还会遇到不执行的问题,此时可以尝试重启crontab。试了一下在dockerfile中加RUN crond restart,发现不管用。

此时可以尝试起了容器之后,执行一个下面的命令:

docker exec -it container_id crond restart

转载于:https://www.cnblogs.com/wswang/p/10278385.html

docker下创建crontab定时任务失败相关推荐

  1. docker内创建文件夹失败

    问题描述 mkdir: cannot create directory 'test': No such file or directory 解决方案 问题根源是创建test文件夹是在data文件夹下, ...

  2. 奥塔在线:CentOS下查看crontab定时任务输出日志

    值班室打电话过来,提醒说监控平台中某台TCU集群服务器告警,磁盘空间不足. 连上服务器,使用df -h查看当前磁盘使用情况,居然已经93%了. 通过查看目录大小命令 du -sh * 发现是Nginx ...

  3. linux创建crontab定时任务

    导读 cron是Linux中默认的计划任务.使用cron,你可以安排一个计划(比如:命令或者shell脚本)周期性地运行或者在指定的分钟.小时.天.周.月等特定时间运行.cron在你安排不同的常规维护 ...

  4. svn 在windows下创建仓库子目录失败解决办法

    开始创建失败,后来就成功了 解决的办法是提升VisualSVN Server Admins对Reposiories目录的权限

  5. xp下创建DOMDocument对象失败的解决方法

    前段时是写关于msxml的东西,工程的主要内容是关于xml文件的读取,显示.修改及保存.工程环境是vs2010,系统是win7. 实现完成后,去测试部一测,无法读取文件.写好的程序居然不能用. 测试的 ...

  6. Mac下使用crontab来实现定时任务

    Mac下使用crontab来实现定时任务 说明: 1.Linux和Mac下操作crontab都是一致的 2.配置文件都在/etc/crontab下,如果没有就创建. 3.测试发现直接使用crontab ...

  7. Linux下使用crontab来执行定时任务计划----执行每晚12点多执行移动log日志文件操作

    一.mvlogs.sh文件: mv `find  /usr/local/logs -name 'Interface.log2010*.log' -mtime +4 |xargs -r`  /usr/l ...

  8. ubuntu下创建定时任务的两种方式及常见问题解决方案

    ubuntu下创建定时任务的两种方式及常见问题解决方案 参考文章: (1)ubuntu下创建定时任务的两种方式及常见问题解决方案 (2)https://www.cnblogs.com/maboii/p ...

  9. docker(ubuntu)中安装cron运行crontab定时任务

    1.安装cron apt-get install cron 设置crontab定时任务 crontab -e */ * * * * /usr/bin/python /python/asch-check ...

最新文章

  1. 哈尔滨学院 计算机等级考试证书,2018年9月黑龙江哈尔滨学院计算机等级考试证书领取通知...
  2. 计算机操作系统中程序的功能是,计算机操作系统的功能和分类研究
  3. 数据类型转换规则C语言
  4. 语法和c区别_史冠新 | 汉语语法单位辨正
  5. 开源性能测试工具 - Apache ab 介绍
  6. 在内存中创建临时表和表变量
  7. 【leetcode】Minimum Path Sum
  8. クリムゾンガールズ 汉化补丁(BUG修正)
  9. 金融销售关键在于客户感受
  10. SPSS论证有这样的问题或错误?【SPSS 068期】
  11. python贪心算法
  12. 苏州市企业工程技术研究中心
  13. linux socket 阻塞服务端 非阻塞客户端,Linux socket非阻塞connect方法
  14. 记录一个错误Failure to find org.eclipse.m2e:lifecycle-mapping:pom:1.0.0的解决过程
  15. HTTPS 到底加密了什么?
  16. Ubuntu 远程控制(使用自带远程工具)
  17. C++ 堆和栈的联系与区别
  18. D神文木源:创业和做生意不同,区块链现在没有什么创业精神
  19. 安装和使用IBM PowerVP和IBM AIX
  20. 张晓飞ajax聊天室,张晓飞欧阳乐做客信息逸站作专题报告

热门文章

  1. VS2003升级VS2010修改
  2. CFileDialog
  3. html5+css3第一次作业_“台风爷爷,让我作业飞走!”南京小学生写的诗都这么逆天了?...
  4. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战
  5. OpenCV_05 形态学操作:连通性+腐蚀和膨胀+开闭运算+礼帽和黑帽
  6. python中continue格式_python自学(3)--for 、 while、 break、continue、字符格式化输出...
  7. fastapi 响应模型 / 响应状态码 / 表单参数
  8. LeetCode 1844. 将所有数字用字符替换
  9. LeetCode 1818. 绝对差值和(二分查找)
  10. 02.改善深层神经网络:超参数调试、正则化以及优化 W3. 超参数调试、Batch Norm和程序框架(作业:TensorFlow教程+数字手势预测)