我对Docker很新颖。我已经使用php:7-fpm图像设置了一个dockerfile。除了用于运行我的站点的这个映像,我还想添加一个cron以执行常规任务。让cron在php上运行:7-fpm图像
我创建了一个cron,把它放在正确的文件夹中,然后运行docker exec -ti myimage_php_1 /bin/bash
然后cron
或者如果我的日志文件都工作正常。但是当容器被创建时,我无法让它工作,我不想手动启动cron。
据我了解,我需要使用CMD
或ENTRYPOINT
运行在启动时cron
命令,但每次我这样做的时候它停止我的现场工作,由于我重写PHP原有的必要CMD/ENTRYPOINT
功能:7- fpm图像。有没有办法触发这两个cron命令,并像以前一样继续使用php:7-fpm CMD/ENTRYPOINT
s?
谢谢,这似乎已经做了我原来的问题的伎俩。我还有第二个问题,那就是当我通过entrypoint.sh文件运行它时,我不能再用'USER nginx'来更改用户,'su - nginx'似乎没有任何作用。我需要cron运行,但用户是'nginx'。如果我在Dockerfile中执行'USER nginx',我没有权限在entrypoint.sh中启动cron。有什么办法可以解决这个问题吗? – john
把你的crontab信息放在/ etc/crontab中,并编辑它在命令前添加用户名:https://serverfault.com/a/352837/171205 – Robert
除非我误解你,问题在于cron没有运行,所以我需要启动它......但在运行entrypoint.sh的时候,我的用户不是root用户(因为我需要它是USER Nginx对我的应用程序),所以我得到'cron:can' t打开或创建/var/run/crond.pid:权限被拒绝。这让我疯狂! – john