【问题标题】:dynamic crontab with docker-compose.yaml带有 docker-compose.yaml 的动态 crontab
【发布时间】:2020-12-29 08:23:26
【问题描述】:

我正在尝试使用此链接作为基础构建一个动态 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"]

entry.sh:

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

start.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

【问题讨论】:

    标签: docker docker-compose cron


    【解决方案1】:

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

    你有两个选择:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 2020-08-16
      相关资源
      最近更新 更多