Сбой развертывания Sidekiq с «ключом не найден:« MY_APP_DATABASE_PASSWORD » - PullRequest
0 голосов
/ 18 декабря 2018

Это мой первый первый вопрос к сообществу.

Справочная информация:

Я пытаюсь развернуть Sidekiq на моем собственном сервере Jessie Debian для Rails 5.0.6 приложение, которое работает с Phusion Passenger с пользователем «развернуть».У меня Redis 3.2.6 установлен и протестирован нормально.Я выбрал демон Systemd для запуска Sidekiq в качестве системной службы.Вот конфигурация:

[Unit]
Description=sidekiq
After=syslog.target network.target

[Service]
Type=simple
WorkingDirectory=/var/www/my_app/code
ExecStart=/bin/bash -lc 'bundle exec sidekiq -e production -C config/sidekiq.yml'
User=deploy
Group=deploy
UMask=0002

# if we crash, restart
RestartSec=4
#Restart=on-failure
Restart=always

# output goes to /var/log/syslog
StandardOutput=syslog
StandardError=syslog

# This will default to "bundler" if we don't specify it
SyslogIdentifier=sidekiq

[Install]
WantedBy=multi-user.target

Вот sidekiq.yml

---
:verbose: true
:concurrency: 4
:pidfile: tmp/pids/sidekiq.pid
:queues:
  - [critical, 2]
  - default
  - low

production:
  :concurrency: 15

И, наконец, # config / initializers / sidekiq.rb:

Sidekiq.configure_server do |config|
  config.redis = { url: "redis://#{ENV['SITE']}:6379/0", password: ENV['REDIS_PWD'] }
end

Sidekiq.configure_client do |config|
  config.redis = { url: "redis://#{ENV['SITE']}:6379/0", password: ENV['REDIS_PWD'] }
end

Как это терпит неудачу Я пытался решить следующую ошибку, найденную в / var / log / syslog:

Dec 18 00:13:39 jjflo systemd[1]: Started sidekiq.
Dec 18 00:13:48 jjflo sidekiq[8159]: Cannot load `Rails.application.database_configuration`:
Dec 18 00:13:48 jjflo sidekiq[8159]: key not found: "MY_APP_DATABASE_PASSWORD"

, которая заканчивается последовательностью сбоя sidekiq и повторной попытки ...

Еще одна попытка Я попробовал следующее, и это работает :

cd /var/www/my_app/code
su - deploy
/bin/bash -lc 'bundle exec sidekiq -e production -C config/sidekiq.yml'

Может ли кто-нибудь помочь мне соединить точки, пожалуйста?

1 Ответ

0 голосов
/ 20 декабря 2018

Переменная среды, очевидно, была проблемой.Поскольку я использовал

ExecStart=/bin/bash -lc 'bundle...

, где -l ссылался на интерактивный сеанс bash, мне пришлось войти в .bashrc пользователя deploy, чтобы переместить строки экспорта в в начало файла вместо дна, где они были, или, по крайней мере, до этой строки .bashrc:

case $- in

Этот пост мне очень помог.

...