13 votes

Existe-t-il un moyen de remplacer les variables d'environnement dans le fichier application.conf de Playframework ?

Existe-t-il un moyen d'utiliser des variables d'environnement dans le fichier play ! application.conf ? Quelque chose comme ceci :

%prod.db.url=${env.DATABASE_JDBC_URL}
%prod.db.driver=org.postgresql.Driver
%prod.jpa.ddl=validate

Je ne veux pas coder en dur l'URL dans mon application.conf parce qu'elle contient des informations d'identification auxquelles le développeur ne devrait pas avoir accès.

12voto

jgrenon Points 910

Toutes les variables contenues dans ${} sont résolues à l'aide des sources suivantes :

  • ${application.path} équivalent à Play.applicationPath.getAbsolutePath()
  • ${play.path} équivalent à Play.frameworkPath.getAbsolutePath()
  • tout autre provient de System.getProperty.

Vous pouvez donc les ajouter comme suit -Dkey=nom lors du lancement de Play ! avec vos informations d'identification secrètes spécifiques à votre environnement.

8voto

Anand B Narasimhan Points 236

${ENV_VARIABLE_KEY} résout toutes les variables définies dans votre environnement. Vous n'avez pas besoin de spécifier le préfixe "env." à moins qu'il ne fasse partie de votre clé.

3voto

Neoh59 Points 33

J'ai le même problème. Ma solution :

  • laisser application.conf avec seulement les propriétés pour le développement local et le stocker dans un VCS (SVN, Git, ...) pour votre équipe de développement
  • ajouter une ligne dans le fichier application.conf : "@include.prod=prod.conf"
  • le fichier prod.conf ne contient que des propriétés %prod.*.
  • créer le fichier prod.conf directement sur le serveur prod (ou le stocker dans un VCS différent de celui de votre application, où seules les personnes autorisées peuvent le lire/écrire)

Cela fonctionne bien pour moi.

Il ajoute simplement un message pour l'équipe de développement lorsque l'application démarre :

ex : 20 mai 2011 21:09:16 play.Logger warn ATTENTION : Missing include : @include.prod

Ce n'est vraiment pas un problème. Informez simplement votre équipe de développement que ce message n'est pas un problème et ne supprimez pas la ligne "@include.prod" dans application.conf.

J'espère que cela vous aidera

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X