내 응용 프로그램 배포 여부를 결정하기 위해 환경 변수가 있는지 확인하고 있습니다 (내 로컬 컴퓨터에서 실행하는 것이 좋음).sinatra app에서 환경 변수를 찾을 수 없지만 테스트 스크립트가 가능합니다.
내 테스트 스크립트는 변수 값을 찾고 표시 할 수 있지만 내 앱에 따르면 변수가 없습니다.
test.rb
Secret_Key_Path = ENV['APPLICATION_VERSION'] ? '/path/to/encrypted_data_bag_secret' : File.expand_path('~/different/path/to/encrypted_data_bag_secret')
puts ENV['APPLICATION_VERSION']
puts Secret_Key_Path
puts File.exists? Secret_Key_Path
info.rb (관련 비트) 나는 그것이 값으로 기록 Secret_Key_Path
의 가치를 로그인하는 경우
::Secret_Key_Path = ENV['APPLICATION_VERSION'] ? '/path/to/encrypted_data_bag_secret' : File.expand_path('~/different/path/to/encrypted_data_bag_secret')
내가 기대하지 않습니다 (대신 즉 '~/different/path/to/encrypted_data_bag_secret'
'/path/to/encrypted_data_bag_secret'
)
내 기본 실행 스크립트의 내부에서 내 앱을 시작하는 방법은 다음과 같습니다. app install
APPLICATION_VERSION=1.0.130
APPLICATION_NAME=app-name
그것은 그것을 실행 컨텍스트의 문제라고 제안했지만, 난 어떻게 잘 모르겠어요 : 나는 env | grep APP
을 할 경우 대신
exec "(cd /path/to/app/root && exec sudo rackup --port #{80} --host #{'0.0.0.0'} --pid /var/run/#{NAME}.pid -O NAME[#{NAME}] -D)"
) 폴더로 이동해야하는 모든 곳에서 내가 얻을 그게 바로 그 문제를 해결할 수 있습니다.
뭐야? 어떤 도움이든 & 제안을 주시면 감사하겠습니다.
는
이것은 sudo를 사용하여 실행하는 명령에 대한 env를 변경하는 것과 관련이 있다고 생각합니다. 불행히도 나는 그것을 고칠 방법을 제안하기에 충분하지 않다. – matt
sudo를 제거하고 작동 했으므로 감사합니다. – Thermatix
@matt이 질문을 '답변'할 수 있도록 대답하십시오. – lcguida