我正在尝试使用此链接作为基础来构建动态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
最佳答案
Cronjobs通常在新鲜,干净的环境中运行。您看到的行为是cron守护程序在运行作业之前正在“清理”环境。
您有两种选择:
关于docker - 使用docker-compose.yaml的动态crontab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63836431/