使用docker-compose入口点时未显示STDOUT

时间:2019-06-28 14:25:28

标签: perl docker cron stdout docker-entrypoint

我的docker-compose文件中有一个由cron运行的脚本

script1:
        entrypoint: /app/cron-entrypoint.sh
        ...
        command:
             - /bin/bash
             - -c
             - |
                 cat cronjob | crontab - && cron -f

cronjob包含* * * * * SHELL=bash cd /app && perl -Ilib test.pl > /proc/1/fd/1 2>&1

问题在于,{strong>我没有看到test.pl上的STDOUT 。 STDERR没问题。 print STDERR "STDERR\n";也可以。

当我评论entrypoint: /app/cron-entrypoint.sh STDOUT时出现。

cron-entrypoint.sh内容:

#!/usr/bin/env bash
set -e
env | while read -r LINE; do
    IFS="=" read VAR VAL <<< ${LINE}
    sed --in-place "/^${VAR}/d" /etc/security/pam_env.conf || true
    echo "${VAR} DEFAULT=\"${VAL}\"" >> /etc/security/pam_env.conf
done
exec "$@"

(使ENV变量可用于在cron下运行的脚本)

有人能猜出为什么发生这种奇怪的行为吗?

0 个答案:

没有答案