我已经设置了一个dockerfile使用php: 7-fpm图像。除了这个图像被用来运行我的网站,我想添加一个cron来执行常规任务。
我已经创建了一个cron,把它放在正确的文件夹中,并运行docker exec-timyimage_php_1 /bin/bash
然后cron
或者如果我尾部
日志文件都可以正常工作。但是当容器被创建时,我不能让它工作,显然我不想手动启动cron。
据我所知,我需要使用CMD
或ENTRYPOINT
在启动时运行cron
命令,但每次我这样做它会停止我的网站工作,因为我覆盖了必要的CMD/ENTRYPOINT
功能的原始PHP: 7-fpm图像。
有没有办法触发cron命令并像以前一样继续使用php:7-fpmCMD/ENTRYPOINT
s?
方法#1
创建自定义entrypoint.sh,如下所示:
#!/bin/bash
cron -f &
docker-php-entrypoint php-fpm
注意
然后:
COPY ./entrypoint.sh /
ENTRYPOINT /entrypoint.sh
方法#2
但是,有一种更为复杂的方法是安装
管理器
,请参阅docs(docker中使用的恶魔管理器):
在Dockerfile中:
RUN apt-get update && apt-get install supervisor
COPY ./supervisord.conf /etc/supervisor/conf.d/supervisord.conf
...
CMD ["/usr/bin/supervisord"]
supervisord.conf
[program:cron]
command = cron -f
[program:php]
command = docker-php-entrypoint php-fpm
一些疑难解答命令:
docker exec <container-id> supervisorctl status
docker exec <container-id> supervisorctl tail -f php
docker exec <container-id> supervisorctl tail -f cron
docker exec <container-id> supervisorctl restart php
问题内容: 我有一个php脚本,想按计划运行。我在Windows上使用本地Web服务器(WAMP服务器),并且需要一种 每10分钟 运行 一次 的方法。 如何在Windows的localhost上的PHP脚本上运行cron作业? 问题答案: 最近,在进行长期从www那里获取一些链接的测试时,我遇到了一些问题,无法在Windows 7的localhost(WAMP服务器)上的php脚本上运行cron
问题内容: 我有一个Docker映像,它是一个node.js应用程序。该应用程序从本地运行的Redis检索一些配置值。因此, 我试图在Docker映像内的同一容器内安装和运行Redis。 如何扩展Docker文件并在其中配置Redis? 到目前为止,Dockerfile如下: 从节点:碳 WORKDIR / app COPY package.json / app 运行npm安装 复制。/ app
我有一个Docker映像,它是一个Node.js应用程序。应用程序从本地运行的Redis检索一些配置值。因此,我试图在Docker映像的同一容器中安装和运行Redis。 我如何扩展Docker文件并在其中配置Redis? 截至目前,Dockerfile如下所示:
我想知道是否有任何方法可以从Windows Docker映像启动容器。 这个想法是在我的Ubuntu上启动一个Windows容器,然后通过RDP连接到那个Windows机器。有可能?
我如何在k8s中拉私人映像并使用它? 这是我的yaml for pod 日志为:-container“privaterePo”在pod“privaterePo”正在等待启动:尝试拉映像但失败
问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 去年关闭。 我目前在开放源代码电子商务平台(www.oscmax.com)上工作,我正在尝试确定是否可以部署可以在平板电脑上运行的脱机版本。我原本希望使用iPad,但是事实证明这非常困难(不可能吗?) a)是否有人知道将在平板电脑上运行的AMP(Apach