STDOUT не отображается, когда используется точка входа docker-compose - PullRequest
0 голосов
/ 28 июня 2019

В моем файле 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

Проблема в том, что Я не вижу STDOUT от test.pl.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)

Может кто-нибудь догадаться, почему произошло такое странное поведение?

...