deployment - unsupported - ¿Cómo implementar la aplicación heroku con el archivo de configuración secreto de yaml sin confirmar el archivo?
push docker compose to heroku (5)
Almacena las credenciales s3 en variables de entorno.
$ 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.
En tu aplicación:
AWS::S3::Base.establish_connection!(
:access_key_id => ENV[''S3_KEY''],
:secret_access_key => ENV[''S3_SECRET'']
)
Consulte la http://devcenter.heroku.com/articles/config-vars Heroku http://devcenter.heroku.com/articles/config-vars que explica la configuración del desarrollo, etc.
En otros proyectos de Rails, tendría un database.yml local y en el repositorio de código fuente solo confirmaría el archivo database.sample. Al implementar, un script capistrano que enlazaría de forma simbólica una versión compartida de database.yml a todas las versiones.
Cuando se implementa en heroku, se usa git y parece que anulan database.yml por completo y hacen algo interno.
Todo está bien y es bueno para database.yml, pero ¿qué pasa si tengo configuraciones s3 en config / s3.yml? Y estoy poniendo mi proyecto en github, por lo que no quiero cometer el s3.yml donde todos puedan ver mis credenciales. Preferiría realizar una muestra en la muestra que las personas anularán con sus propios ajustes y mantendrán un archivo s3.yml local sin confirmar en mi directorio de trabajo.
¿Cuál es la mejor manera de manejar esto?
Heroku tiene alguna orientación sobre esto -
Si usa Rails 4.1 beta, pruebe la gema heroku_secrets, desde https://github.com/alexpeattie/heroku_secrets :
gem ''heroku_secrets'', github: ''alexpeattie/heroku_secrets''
Esto le permite almacenar claves secretas en config / secrets.yml de Rails 4.1 (que no está registrado en el control de fuente) y luego simplemente ejecutarlo
rake heroku:secrets RAILS_ENV=production
para que sus contenidos estén disponibles para heroku (analiza su archivo secrets.yml y lo envía todo a heroku como variables de entorno, según los documentos de mejores prácticas de heroku).
También puedes echar un vistazo a la gema de Figaro .
Una solución alternativa es crear una nueva rama local donde modifiques .gitignore para que el archivo secreto se pueda enviar a heroku. NO empujes esta rama a tu repo de Github.
Para empujar la rama no maestra a heroku, use:
git push heroku secret-branch:master
Más información se puede encontrar en:
https://devcenter.heroku.com/articles/multiple-environments#advanced-linking-local-branches-to-remote-apps
Use heroku run bash
y luego ls
para verificar si su archivo secreto ha sido enviado a heroku o no