gpt4 book ai didi

cron - Docker CentOS 7 - cron 不能在本地机器上工作

转载 作者:行者123 更新时间:2023-12-02 18:12:34 29 4
gpt4 key购买 nike

在我的 VPS 中,我创建了一个包含 cron 作为入口命令运行的 docker 镜像。我还有一个示例 cron 文件,它说它应该每 5 分钟执行一次命令。

Dockerfile:

FROM centos:centos7
MAINTAINER Lysender <foo@example.com>

# Install packages
RUN yum -y update && yum clean all
RUN yum -y install epel-release && yum clean all

RUN yum -y install git \
bind-utils \
pwgen \
psmisc \
net-tools \
hostname \
curl \
curl-devel \
sqlite \
cronie \
libevent \
gearmand \
libgearman \
libgearman-devel \
php \
php-bcmath \
php-common \
php-pear \
php-mysql \
php-cli \
php-devel \
php-gd \
php-fpm \
php-pdo \
php-mbstring \
php-mcrypt \
php-soap \
php-xml \
php-xmlrpc \
php-pecl-gearman && yum clean all

# Configure servicies
ADD ./start.sh /start.sh
ADD ./my-cron.conf /etc/cron.d/my-cron

RUN chmod 755 /start.sh

CMD ["/bin/bash", "/start.sh"]

my-cron.conf 文件:
# Run command every 5 minutes
*/5 * * * * root echo "foo" >> /tmp/logit.log 2>&1

启动.sh
#!/bin/bash

__run_cron() {
echo "Running the run_cron function."
crond -n
}

# Call all functions
__run_cron

然后我像这样构建它:
docker build --rm -t lysender/cron-php-gearman .

然后运行:
docker run --name cron -d lysender/cron-php-gearman

5 分钟后,我检查了 cron 是否工作:
docker exec -it cron bash
cat /tmp/logit.log

有用。所以我把它推送到我的帐户中的 docker hub。
docker push lysender/cron-php-gearman

然后拉入我的本地机器并像在我的 VPS 主机上那样运行它。

但是,没有迹象表明 cron 实际运行,例如: /tmp/logit.log永远不会创建文件。

可能出了什么问题?

机器规范:
  • VPS:Linode 在 KVM 上运行 Slackware 14.1,Docker 1.6.2
  • 本地:VirtualBox VM 运行 Slackware 14.1、Docker 1.6.2 - 与 VPS
  • 相同

    两者都以普通用户(非root)身份运行。

    但是,区别在于 CentOS 镜像。
  • VPS:5周龄
  • 本地:4个月大。

  • 我已经提取了一个新的 CentOS7 镜像,因此两者都存在 5 周,但我没有先删除该镜像(只是更新/拉取)。

    所以我拉了 CentOS 7,然后拉了 lysender/cron-php-gearman。我的理解是它应该运行在较新的 CentOS 7 镜像之上。

    最佳答案

    似乎是 Centos 上的容器特定问题:
    https://github.com/CentOS/CentOS-Dockerfiles/issues/31
    RUN sed -i '/session required pam_loginuid.so/d' /etc/pamd.d/crond

    关于cron - Docker CentOS 7 - cron 不能在本地机器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31644391/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com