首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果不在root下运行,Docker cronjob权限不正确

问如果不在root下运行,Docker cronjob权限不正确
EN

Stack Overflow用户
提问于 2017-08-02 05:30:43
回答 2查看 56关注 0票数 1

我有一个与Apache一起运行的docker容器。这是在root用户下使用docker-compose启动的。在这个容器中,de webserver在默认用户www-data下运行。通过conjob,我触发php脚本来上传图片。如果cronjob在root下运行,则可以很好地工作。但我想让conjob在www-data下运行,这样上传的文件与直接通过apache上传的文件具有相同的所有者。

我使用下面的cronjob (这行得通):

代码语言:javascript
复制
*/1 * * * * docker exec apache_1 php /var/www/import

但是当我将cronjob用户更改为www-data时(不再触发):

代码语言:javascript
复制
*/1 * * * * www-data docker exec apache_1 php /var/www/import

使用最后一个cronjob时,容器内的php脚本不再被触发。我相信这和权限设置有关吧?

EN

回答 2

Stack Overflow用户

发布于 2017-08-02 06:07:34

如果您希望容器内的www- import执行数据命令,请将其指定为docker:

代码语言:javascript
复制
*/1 * * * * docker exec --user www-data apache_1 php /var/www/import

在您尝试过的情况下,用户www-data没有权限运行docker命令。而且,您没有这样的选项来在crontab -e中指定用户名(您尝试执行的操作应该在/etc/crontab中,或者使用su/sudo)。

票数 1
EN

Stack Overflow用户

发布于 2017-08-02 05:56:51

如果您尝试在登录到root用户帐户时以用户身份运行命令,则命令应为:

代码语言:javascript
复制
su www-data; docker exec apache_1 php /var/www/import

否则,您需要切换到www-data用户(sudo su www-data),然后编辑该用户的cron作业(crontab -e)。每个用户都有自己的cronjob。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45447983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档