我正在部署我的游戏! 2.1 Cloudbees上的应用。
我的 application.conf :
# Database configuration
# ~~~~~
db.default.driver=com.mysql.jdbc.Driver
db.default.url=${MYSQL_URL_DB}
db.default.user=${MYSQL_USERNAME_DB}
db.default.password=${MYSQL_PASSWORD_DB}
我在Cloudbees配置中定义了这些值:
$ bees config:list -a myself/my-app
Application Parameters:
proxyBuffering=false
MYSQL_URL_DB=jdbc:cloudbees://my-app
MYSQL_USERNAME_DB=my-app
MYSQL_PASSWORD_DB=yummy
Runtime Parameters:
java_version=1.7
我使用引发Jenkins的git(git push cloudbees cloudbees:master
)发布我的应用。但是在部署应用程序时,我会进入Jenkins日志:
[错误](编译:编译) com.typesafe.config.ConfigException $ UnresolvedSubstitution: conf / application.conf:16:无法解析替换为值: $ {MYSQL_PASSWORD_DB}
还有什么可以让Jenkins知道配置吗?我误解了什么吗?
感谢您的帮助!
阿尔
答案 0 :(得分:6)
你可以添加“?”到开头,所以它将被视为一个覆盖。
db.default.url=${?MYSQL_URL_DB}
如果您愿意,也可以使用此方法处理后备情况。
db.default.url=mysql://fallback_url
db.default.url=${?MYSQL_URL_DB}
如果MYSQL_URL_DB不存在,将使用fallback_url。
答案 1 :(得分:1)
此配置在运行时注入,而不是构建时。你必须找到一种方法来使sbt构建忽略未解决的替换。 似乎可能的解决方法是将MYSQL_URL_DB = foo等设置为构建环境变量,以便检查不会中断,因为它们实际上不会在您的配置中注入
答案 2 :(得分:1)
我使用这样的配置:
https://github.com/CloudBees-community/play2-clickstart/blob/master/conf/application.conf
和这样的构建命令:
java -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -jar /opt/sbt/sbt-launch-0.11.3-2.jar -Dsbt.log.noformat=true clean compile test dist
它并不担心缺少的环境变量。 我的猜测是有一个scala宏或触发编译器解决这些变量的东西。添加它们很好。
我修改了clickstart,以便在需要时设置默认值。