用cron运行docker镜像

我正在使用docker集线器的图像,并使用cron执行一些间隔后的行动。 我已经按照工作stream程(而不是networking)的文档中所述进行了注册和推送。 它也需要几个环境variables。

我已经从命令行运行它,例如docker run -t -e E_VAR1=VAL1 registry.heroku.com/image_name/worker ,它工作了几天,然后突然停止,我不得不再次运行该命令。

问题:

  • 这是在Heroku中运行docker(作为工作进程)的正确方法吗?
  • 为什么会在几天后停止运行? 有没有要检查的日志?
  • 有没有办法自动重启进程?
  • 如何在Heroku中正确设置Docker的环境variables?

谢谢!

  1. 如果你想在后台运行,你应该使用-d标志来断开stdin和stdout,而不是-t

  2. 要检查日志,用户docker logs [container name or id] 。 您可以使用docker ps -a来查找容器的名称和标识。 这应该给你一个关于为什么容器停下来的想法。

  3. 要让容器重新启动,在运行时会自动添加--restart always标志。 或者,使用--restart on-failure只在退出非零退出代码时重新启动。

  4. 你设置环境variables的方式似乎很好。