首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Docker中设置Cronjob以重新索引Magento 2

在Docker中设置Cronjob以重新索引Magento 2,可以按照以下步骤进行操作:

  1. 首先,确保你已经安装并配置了Docker和Docker Compose。
  2. 在Magento 2项目的根目录下,创建一个新的文件夹,命名为.docker
  3. .docker文件夹中创建一个新的文件,命名为cron.Dockerfile,并在其中添加以下内容:
代码语言:txt
复制
FROM alpine:3.14

RUN apk add --no-cache \
    curl \
    php7 \
    php7-cli \
    php7-curl \
    php7-dom \
    php7-iconv \
    php7-json \
    php7-mbstring \
    php7-openssl \
    php7-pdo_mysql \
    php7-simplexml \
    php7-tokenizer \
    php7-xml \
    php7-xmlwriter \
    php7-zip

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer

COPY crontab /etc/crontabs/www-data

CMD ["crond", "-f"]
  1. .docker文件夹中创建另一个新文件,命名为crontab,并在其中添加以下内容:
代码语言:txt
复制
* * * * * /usr/local/bin/php /var/www/html/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/html/var/log/magento.cron.log
* * * * * /usr/local/bin/php /var/www/html/update/cron.php >> /var/www/html/var/log/update.cron.log
* * * * * /usr/local/bin/php /var/www/html/bin/magento setup:cron:run >> /var/www/html/var/log/setup.cron.log

这个crontab文件定义了三个定时任务,分别用于运行Magento 2的索引、更新和设置。

  1. 在项目的根目录下创建一个新的文件,命名为docker-compose.cron.yml,并在其中添加以下内容:
代码语言:txt
复制
version: '3'
services:
  cron:
    build:
      context: .
      dockerfile: .docker/cron.Dockerfile
    volumes:
      - ./app:/var/www/html
    networks:
      - magento
    restart: unless-stopped

这个docker-compose.cron.yml文件定义了一个名为cron的服务,使用之前创建的cron.Dockerfile构建镜像,并将Magento 2项目目录挂载到容器中。

  1. 在项目的根目录下运行以下命令启动Cronjob服务:
代码语言:txt
复制
docker-compose -f docker-compose.cron.yml up -d

现在,Cronjob服务已经在Docker中设置完成,并会按照预定的时间间隔重新索引Magento 2。

值得注意的是,以上步骤假设你已经在Magento 2项目中正确配置了Cronjob。如果你还没有配置Cronjob,请参考Magento 2官方文档进行配置。

此外,腾讯云提供了一系列与容器相关的产品和服务,例如腾讯云容器服务(Tencent Kubernetes Engine,TKE),可以帮助你更方便地管理和部署容器化应用。你可以访问腾讯云容器服务的官方文档了解更多信息:腾讯云容器服务(TKE)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在CentOS 7上安装Magento(Install Magento on CentOS 7 译文)

为了进行更多内存密集型的Magento设置,我们建议使用high memory Linode。 注意本教程介绍了如何在刚发布时安装最新的Magento发行版。...在本节中,我们将为Magento配置Apache,以确保样式和其他设置在店面中正确显示。 1....重新启动Apache以应用这些更改: sudo systemctl restart httpd 安装MySQL并创建数据库和用户 在本教程的发布中,Magento 2与MariaDB不兼容,后者通常是CentOS...设置Cron Jobs Magento依靠cron来执行诸如不断重新编制站点索引以及生成电子邮件和新闻简报等任务。如果您登录管理面板,您可能已经注意到一条错误消息,指出需要设置cron作业。...实际上,一些支付供应商(如PayPal)需要SSL证书才能用于客户交易。 有关如何在商店中使用SSL证书的说明,请参阅有关获取商业签名SSL证书和使用Apache 证书的教程。

9.4K50

在CentOS 7上安装Magento

为了进行更多内存密集型的Magento设置,我们建议使用high memory Linode。 注意本教程介绍了如何在刚发布时安装最新的Magento发行版。...重新启动Apache以应用这些更改: sudo systemctl restart httpd 安装MySQL并创建数据库和用户 在本教程的发布中,Magento 2与MariaDB不兼容,后者通常是CentOS...设置Cron Jobs Magento依靠cron来执行诸如不断重新编制站点索引以及生成电子邮件和新闻简报等任务。如果您登录管理面板,您可能已经注意到一条错误消息,指出需要设置cron作业。...4 要验证规则是否已正确设置,请注销Magento管理员并重新登录。如果一切配置正确,您将不再看到通知。 如果消息仍然存在,请在重新登录前等待几分钟,以便cron作业有时间在系统上生效。...实际上,一些支付供应商(如PayPal)需要SSL证书才能用于客户交易。 有关如何在商店中使用SSL证书的说明,请参阅有关获取商业签名SSL证书和使用Apache 证书的教程。

14K60
  • K8s JobsCron Jobs入门教程,轻松搞定批处理

    而在正常的Kubernetes中,无论退出代码是什么,deployment对象在终止或出现错误时都会创建新的pod,以保持deployment的理想状态。...在job运行过程中,如果托管pod的节点发生故障,Job pod将被自动重新安排到另一个节点。 ?...例如,在一个job中如果你想要运行6个 pods,同时并行运行2个pods,你需要添加以下2个参数到你的job manifets中: completions: 6 parallelism: 2 以下是带有那些参数的...手动运行Kubernetes CronJob 在某些情况下,你可能希望以临时的方式执行cronjob。你可以通过从现有的cronjob创建一个job来实现。...activeDeadlineSeconds:如果你想对cronjob的运行时间进行硬性限制,可以使用此参数。例如,如果你想只运行1分钟的cronjob,你可以将其设置为60。

    3.8K10

    入门教程:5步创建K8s Job,搞定批处理

    而在正常的Kubernetes中,无论退出代码是什么,deployment对象在终止或出现错误时都会创建新的pod,以保持deployment的理想状态。...在job运行过程中,如果托管pod的节点发生故障,Job pod将被自动重新安排到另一个节点。 ?...例如,在一个job中如果你想要运行6个 pods,同时并行运行2个pods,你需要添加以下2个参数到你的job manifets中: completions: 6 parallelism: 2 以下是带有那些参数的...手动运行Kubernetes CronJob 在某些情况下,你可能希望以临时的方式执行cronjob。你可以通过从现有的cronjob创建一个job来实现。...activeDeadlineSeconds:如果你想对cronjob的运行时间进行硬性限制,可以使用此参数。例如,如果你想只运行1分钟的cronjob,你可以将其设置为60。

    1.9K10

    记录我们迁移到 Docker 的挑战和经验教训

    通过使用 Docker 集成,我们提前完成了宏伟的计划! 基于应用程序打包的事实标准来重新调整我们的 PaaS,对于各种形式和规模的开发团队来说都是一个好消息。...4 转变与见证:我们如何让 Magento 2 更加闪亮 你可以想象 Docker 迁移对我们日常工作的开创性影响。协调虚拟机需要与我们的云提供商在某种专有技术上进行强耦合。...在笔记本上运行完全相同的 Magento 2 栈并将其投入生产如何?这在 Artifakt 是可能的。...Magento 2 是自 7 月早些时候发布 Stack v5 以来我们正式支持的九个运行时的一部分。...挑战 #1:crontab 集成 我们最完整的运行时是 Magento 2 和 Akeneo,它们是 cron 任务的重度用户:索引、缓存、镜像大小调整、导入 / 导出等等。

    92420

    云原生周报第 1 期 | 2019-06-24~2019-06-28

    以容器、服务网格、微服务、Serverless 为代表的云原生技术,带来一种全新的方式来构建应用。笔者是一名云原生狂热信徒,长期以来我都不知道该怎么整理自己的收藏夹。...krontab : 如果你想在 Kubernetes 中创建一个 Cronjob,你得先编写一个 YAML 文件,然后再 apply 一下。...krontab 可以让你免去这些繁琐的步骤,它类似于 Linux 系统中的 crontab,当你想创建一个 Cronjob 时,直接在终端输入命令 krontab -e 就会使用 vim 打开一个虚拟的文件...,写好定时任务(语法和 crontab 一样)后输入 :wq 退出就会立即创建一个 Cronjob。...Kubernetes Operator 最佳实践 : Openshift 写的一篇关于开发 Operator 的最佳守则,从 Operator 的主要精髓介绍,如 Operator 会 watch Master

    1.6K30

    Gitlab CI 在 Kubernetes 中的 Docker 缓存

    前面我们有文章介绍过如何在 Kubernetes 集群中使用 GitLab CI 来实现 CI/CD,在构建镜像的环节我们基本上都是使用的 Docker On Docker 的模式,这是因为 Kubernetes...集群使用的是 Docker 这种容器运行时,所以我们可以将宿主机的 docker.sock 文件挂载到容器中构建镜像,而最近我们在使用 Kubernetes 1.22.X 版本后将容器运行时更改为了...上的 Docker 守护进程,由于 Pod 中的所有容器共享同一个 network namespace,构建镜像的 Docker CLI 能够通过 localhost 直接连接到 Docker 守护进程进行构建...env: - name: DOCKER_DRIVER value: overlay2 - name: DOCKER_HOST...最后随着镜像的大量构建会产生很多镜像数据,我们可以写一个 Cronjob 用来定时清除缓存: apiVersion: batch/v1 kind: CronJob metadata: name: docker-dind-clear-cache

    1.5K10

    如何使用 TmpwatchTmpreaper 删除旧文件

    使用 Bash 脚本在 Linux 中删除早于 “X” 天的文件/文件夹 今天,我们将向你展示如何在 Linux 上使用 Tmpwatch 程序来实现这一目标。...所有示例都可以如预期工作。 了解关键选项和参数 atime(文件上次访问时间):显示命令或脚本等任意进程最后一次访问文件中数据的时间。...例如,运行以下命令以递归方式删除过去 5 个小时未访问的文件。 # tmpwatch 5 /tmp 运行以下命令删除最近 10 个小时未修改的文件。...# tmpwatch -t 5h /home/daygeek/Downloads 如何设置 cronjob 来使用 tmpwatch 定期删除文件 默认情况下,它在 /etc/cron.daily/tmpreaper...该 cronjob 根据位于 /etc/timereaper.conf 中的配置文件工作。你可以根据需要自定义文件。 它每天运行一次,并删除 7 天之前的文件。

    3.8K10

    Kubernetes 核心概念

    1)Deployment 2)ReplicaSet 3)Pod 4)Node Cluster 5)Node Processes 6)Docker Container Deployment 创建和管理 ReplicaSet...Pod 运行于 Node 中,一个 Node 中通常会运行多个 Pod。 Node 中有 Container 运行时环境,并运行放置在 Docker 镜像中的应用程序。 ?...一个 Pod 就是一个最小单元,其中的内容绝对不会被分割在2个Node上,一个 Pod 中的内容始终作为一个整体。 谁告诉 Node 做什么呢?Master。...Docker Container 如果要与K8s一起运行,则应用程序必须放在某种容器中。 Docker是最常见的容器平台。我们假设您正在使用它。 ?...CronJob 如果要在指定的时间(例如每小时,每天或每月)运行作业,请创建 CronJob。 CronJob 与 Job 类似,但是 CronJob 计划以固定的时间间隔或固定的时间重复执行。 ?

    80020

    如何将TKEEKS集群事件日志持久化

    ,模板的名称 setup.template.pattern: "tke-event-*" # 模板匹配那些索引,这里表示以nginx开头的所有的索引 setup.template.enabled...测试检索事件 登录下kibana image.png 然后创建下索引,这里filebeat设置的索引名称都是tke-event开头,kibana里面创建一个tke-event-*的索引即可。...定时清理es索引 事件日志是存在es里面,每天的事件都会写到一个索引,如果事件日志较多,保留太长的时间的事件会很容易将磁盘空间打满,这里我们可以写个脚本,然后配置下cronjob来定时清理es里面的索引...清理索引脚本clean-es-indices.sh,这里需要传入2个参数,第一个参数是清理多少天以前的索引,第二个参数是es的host地址。...还需要注意的是脚本里面日期的格式,因为我这边创建的索引名称日期是+%Y.%m.%d,所以脚本里面是这个,如果日期格式不是这个,需要自行修改脚本,然后重新打镜像。

    1.2K137

    【K8s】专题十四:Kubernetes 控制器之 CronJob

    以下内容均来自个人笔记并重新梳理,如有错误欢迎指正! 如果对您有帮助,烦请点赞、关注、转发!...并发策略:可以设置并发策略,如允许多个 Job 并发执行,或在新 Job 开始前终止旧的 Job 失败重试:可以配置重试策略,当 Job 失败时,CronJob 可以重新创建 Job 来尝试完成任务...历史记录:CronJob 会保留成功和失败 Job 的历史记录,便于追踪和分析 暂停和恢复:可以暂停 CronJob,暂停后不会生成新的 Job,也可以恢复 CronJob 继续生成 Job 时区设置:...可以设置 CronJob 的时区,以适应不同地区的时区需求 Suspend:可以挂起 Job 的执行,直到再次被激活 死信队列:对于失败的 Job,可以配置死信队列来处理这些失败的任务 资源清单(示例)...cronjob.yaml 或 kubectl apply -f cronjob.yaml 2、查看 CronJob # 查看实例列表 kubetcl get cronjob # 查看详细信息 kubectl

    10910

    服务部署与迁移的步骤

    一、服务部署与迁移的步骤 1.1、将应用封装进容器 应用容器化是部署与迁移的第一步,需要设计并规划好镜像的构建方案,由于Docker镜像分层的特性,通常建议使用分层方式进行Docker镜像构建。 ​...操作系统层:制作公司常用的系统版本如CentOS、Ubuntu,可以在官方镜像的基础上添加自己需要的软件包。 ​...运行环境层:在已经构建的操作系统层的基础上,把业务常用的运行环境都打包好,如JDK7、JDK8、JDK8+Tomcat8、Python2、Python3等通用模板。 ​...1.2、将容器放入Pod中 ​应用容器化后,就需要考虑如何在Pod中运行,因为Pod是Kubernetes管理的最小单元,Kubernetes不直接管理容器,而是管理Pod,Pod里面包含容器。...CronJob:使用Kubernetes运行定时任务。

    1K10

    kubernetes系列教程(十三)一次性任务Job和周期任务

    Jobs让单次任务跑起来 1.1 Jobs简介 Windows下可以通过批处理脚本完成批处理任务,脚本运行完毕后任务即可终止,从而实现批处理任务运行工作,类似的任务如何在kubernetes中运行呢?...答案是Jobs,Jobs是kubernetes中实现一次性计划任务的Pod控制器—JobController,通过控制Pod来执行任务,其特点为: 创建Pod运行特定任务,确保任务运行完成 任务运行期间节点异常时会自动重新创建...Jobs运行多个任务 Jobs控制器提供了两个控制并发数的参数:completions和parallelism,completions表示需要运行任务数的总数,parallelism表示并发运行的个数,如设置为...2....,其具有如下特点: 实现周期性计划任务 调用Jobs控制器创建任务 CronJobs任务名称小于52个字符 应用场景如:定期备份,周期性发送邮件 [Cronjob] CronJobs可通过schedule

    7.3K52
    领券