【发布时间】:2018-10-27 05:19:10
【问题描述】:
我目前正在从主机 (Linux Redhat) 运行 cronjob,该主机在 docker 容器中执行脚本。我遇到的问题是,当我将标准输出重定向到具有 docker 容器内路径的文件时,cronjob 抛出异常,基本上说找不到日志文件的路径。但是,如果我将输出日志文件路径更改为主机上的路径,它就可以正常工作。
下面不行
0 9 * * 1-5 sudo docker exec -i /path/in/docker/container/script.sh > /path/in/docker/container/script.shout
但是这个有效
0 9 * * 1-5 sudo docker exec -i /path/in/docker/container/script.sh > /path/in/host/script.shout
如何让第一个 cronjob 工作,以便使用 docker 容器中的路径将输出文件放入 docker 容器中?
我不想以 root 的身份运行 cronjob,这就是为什么我需要在 docker exec 之前使用 sudo。请注意,只有root 可以访问主机中的docker volume 路径,这就是为什么我也不能使用docker 卷路径。
【问题讨论】:
-
选择了来自工作的答案,但选择了来自@VonC 的解决方案,因为它更干净(无需在 cronjob 行上添加任何内容)