首页
学习
活动
专区
工具
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

为了进行更多内存密集型的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

在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
  • 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.6K10

    入门教程: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

    云原生周报第 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

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

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

    90120

    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 如果要在指定的时间(例如每小时,每天或每月)运行作业,请创建 CronJobCronJob 与 Job 类似,但是 CronJob 计划固定的时间间隔或固定的时间重复执行。 ?

    79220

    【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

    7710

    服务部署与迁移的步骤

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

    99610

    如何将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
    领券