Как развернуть приложение heroku с секретным файлом конфигурации yaml без фиксации файла?
в других проектах rails у меня была бы локальная база данных.yml и в репозитории исходного кода фиксируют только базу данных.файл примера. При развертывании сценарий capistrano, который будет символически ссылаться на общую версию базы данных.yml для всех выпусков.
при развертывании в heroku используется git, и они, похоже, переопределяют базу данных.yml вообще и делать что-то внутреннее.
Это все хорошо и хорошо для базы данных.yml, но что, если у меня есть конфигурации s3 в config/s3.в формате YML. И Я ставлю свой проект на github, поэтому я не хочу фиксировать s3.yml, где все могут видеть мои учетные данные. Он скорее зафиксирует образец s3.пример, который люди будут переопределять со своими собственными настройками, и сохранить локальный s3.файл YML, незафиксированный в моем рабочем каталоге.
каков наилучший способ справиться с этим?
5 ответов
сохраните учетные данные s3 в переменных среды.
$ cd myapp
$ heroku config:add S3_KEY=8N029N81 S3_SECRET=9s83109d3+583493190
Adding config vars:
S3_KEY => 8N029N81
S3_SECRET => 9s83109d3+583493190
Restarting app...done.
приложения:
AWS::S3::Base.establish_connection!(
:access_key_id => ENV['S3_KEY'],
:secret_access_key => ENV['S3_SECRET']
)
смотрите Heroku Config vars documentation которые объясняют настройку разработки и т. д.
Если через рельсы бета 4.1, попробуйте heroku_secrets камень, из https://github.com/alexpeattie/heroku_secrets:
gem 'heroku_secrets', github: 'alexpeattie/heroku_secrets'
Это позволяет хранить секретные ключи в Rails 4.1 л!--7-->настройка/секреты.в формате YML (который не зарегистрирован в системе управления версиями), а затем просто запустите
rake heroku:secrets RAILS_ENV=production
чтобы сделать его содержимое доступным для heroku (он анализирует ваши секреты.YML-файл и подталкивает все в нем к heroku в качестве переменных среды, в соответствии с лучшей практикой heroku доктора.)
альтернативным решением является создание нового местного отделения где вы изменить .gitignore так секрет-файлом можно нажать на heroku. НЕ нажмите эту ветку на ваше репозиторий Github.
чтобы подтолкнуть ветку non-master к heroku, используйте:
git push heroku secret-branch:master
больше информации можно найти on:
https://devcenter.heroku.com/articles/multiple-environments#advanced-linking-local-branches-to-remote-apps
использовать heroku run bash
а то ls
чтобы проверить, был ли ваш секретный файл нажат на heroku или нет