Люди,
Я пытаюсь переместить что-то в контейнер докера, что означает сдвиг от выполнения его как демон в одинокий процесс, которым управляет supervisord. Теперь у меня нет большого опыта с supervisord, таким образом, это вероятно простая ошибка конфигурации с моей стороны.
Проблема происходит, от которого для этого приложения нужен определенный набор переменных среды. При выполнении как демон я установил их с помощью сценария удара
#!/bin/bash
ORACLE_HOME=/home/oracle/app/
TNS_ADMIN=/home/oracle/app/network/admin
export ORACLE_HOME TNS_ADMIN
export LD_LIBRARY_PATH=$PATH:/home/oracle/app/lib
ncftpd_authd
В supervisord.conf я настроил его как
[program:authd]
environment=ORACLE_HOME="/home/oracle/app/",TNS_ADMIN="/home/oracle/app/network/admin",export ORACLE_HOME TNS_ADMIN,export LD_LIBRARY_PATH="$PATH:/home/oracle/app/lib"
command=/usr/local/sbin/ncftpd_authd
stdout_events_enabled=true
stderr_events_enabled=true
Однако, если я называю supervisord-c/etc/supervisord.conf, я получаю ошибку
[root@0d7f9a5d7c3a src]# supervisord -c /etc/supervisord.conf
Error: Unexpected end of key/value pairs
Я полагаю, что это связано со строкой среды, как будто я комментирую это, supervisord запустится (но authd не будет работать). Что я делаю неправильно в установке среды в supervisord conf файл?
окружение
должно быть списком пар ключ / значение, что означает, что он не должен содержать экспорт
. Правильное значение будет:
environment=ORACLE_HOME="/home/oracle/app/",TNS_ADMIN="/home/oracle/app/network/admin",LD_LIBRARY_PATH="$PATH:/home/oracle/app/lib"
Вам также может потребоваться заменить $ PATH
его значением. Или вы можете следовать стандарту записи переменных извне в http://supervisord.org/configuration.html?highlight=environment . Короче говоря, чтобы использовать $ PATH
, просто напишите % (ENV_PATH) s
. Тогда это будет примерно так:
environment=ORACLE_HOME="/home/oracle/app/",TNS_ADMIN="/home/oracle/app/network/admin",LD_LIBRARY_PATH="%(ENV_PATH)s:/home/oracle/app/lib"