繁体   English   中英

带有 docker-compose.yaml 的动态 crontab

[英]dynamic crontab with docker-compose.yaml

我正在尝试使用此链接作为基础构建动态 cron 作业: How to run a cron job inside a docker container当我是容器时 $var1 打印正确的值,但看起来像 cron 不喜欢 env 变量... . 有什么办法解决这个问题吗? Dockerfile:

FROM alpine:latest
RUN apk update
RUN apk add rsync run-parts curl
COPY /Scripts/* /
RUN chmod 755 /entry.sh /script.sh /start.sh
#RUN /usr/bin/crontab /crontab.txt
CMD ["/entry.sh"]

入口.sh:

#!/bin/sh
# start cron
sh start.sh
/usr/sbin/crond -f -l 8

开始.sh:

#!/bin/bash

/usr/bin/crontab /crontab.txt

docker-compose.yml:

version: '3.6'
services:
    test:
        image: test1
        environment:
            - var1=${var1_env}
    

.env:

var1_env=*/1

crontab.txt:

$var1 * * * * /script.sh >> /var/log/script.log

Cronjobs 传统上在一个新鲜、干净的环境中运行。 您看到的行为是 cron 守护进程在运行您的作业之前“清理”环境。

您有两个选择:

  1. 让 cronjob 运行一个 shell 脚本。 该 shell 脚本设置环境,然后运行命令。 https://stackoverflow.com/a/2229861/530160
  2. 在 crontab 中定义变量。 https://stackoverflow.com/a/10657111/530160

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM