У меня есть приложение для рельсов (4.2) через Passenger (5.0.28) + Apache (2.4.7) в системе Ubuntu (14.02), рубин (2.3.0), управляемый с помощью rbenv. Я развертываю с Capistrano (3.4.0).Как получить доступ к переменным окружения во время развертывания Capistrano?
Все мои переменные среды установлены в очень простом сценарии profile.d
.
#!/bin/sh
export VAR1=VAL1
export VAR2=VAL2
Это работает как шарм. В моем приложении ENV
есть все правильные переменные, Secrets.yml
правильно заполнен ... все работает ЗА ИСКЛЮЧЕНИЕМ при развертывании с Capistrano по ssh.
В моей deploy.rb
я следующее, что я думаю, relavant:
set :ssh_options, {
forward_agent: true,
paranoid: true,
keys: "~/.ssh/id_rsa.pub"
}
Capistrano документы являются невероятно ограниченным и SSH \ конфигурация сервера не мой конек, я не могу понять, почему мои ENV
переменные Капистрано не видели. Если во время развертывания я запускаю puts ENV.inspect
, я получаю такие вещи, как "TERM_PROGRAM"=>"Apple_Terminal"
и информацию о моем локальном компьютере и многое другое. Почему Capistrano не использует удаленную среду? Как я могу изменить свою конфигурацию на стороне сервера или в моем сценарии развертывания, чтобы исправить это?
Спасибо за помощь.
Отличный ответ. –
Большое вам спасибо за то, что нашли время, чтобы написать это. Эта диаграмма в конце ссылки фантастическая. –