【发布时间】:2015-06-18 02:49:34
【问题描述】:
我最近想在crontab中执行docker-compose命令时遇到问题。
我有一个 docker-compose YAML 文件,它定义了我需要的所有服务,比如“docker-compose.yml”。我还有一个 Makefile,我在其中编写了一些命令来做某事。
我的makefile是:
.PHONY operate
operate:
/usr/local/bin/docker-compose -p /project -f ~/docker-compose-production.yml run rails env
这使得脚本在 shell 中执行时运行良好。它列出了我在 docker-compose.yml 中定义的所有环境变量。但是当我把它放在 crontab 中时。
结果变得很奇怪,它只列出了$PATH。
我的 crontab 文件是:
57 21 * * * make -f ~/Makefile operate >~/temp 2>&1
我想肯定有一些环境变量是 docker-compose 必须有的,但我不知道。你对这个问题有任何想法吗?
【问题讨论】:
-
您没有定义运行 cronjob 的用户,因此您需要使用绝对路径而不是
~/。