当前位置: 首页 > 知识库问答 >
问题:

让cron在php:7-fpm映像上运行[已关闭]

穆华彩
2023-03-14

我已经设置了一个dockerfile使用php: 7-fpm图像。除了这个图像被用来运行我的网站,我想添加一个cron来执行常规任务。

我已经创建了一个cron,把它放在正确的文件夹中,并运行docker exec-timyimage_php_1 /bin/bash然后cron或者如果我尾部日志文件都可以正常工作。但是当容器被创建时,我不能让它工作,显然我不想手动启动cron。

据我所知,我需要使用CMDENTRYPOINT在启动时运行cron命令,但每次我这样做它会停止我的网站工作,因为我覆盖了必要的CMD/ENTRYPOINT功能的原始PHP: 7-fpm图像。

有没有办法触发cron命令并像以前一样继续使用php:7-fpmCMD/ENTRYPOINTs?

共有1个答案

章丰茂
2023-03-14

方法#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