使用环境变量为CircleCI配置Sails.js应用

时间:2018-08-29 01:17:27

标签: environment-variables sails.js

在使用process.env.VARIABLE_NAME之前,我已经使用节点应用程序访问了环境变量,但是我很想尝试Sails' alternative solution。看来我应该能够在/config/foo.js文件中放入一个哑数值(或什么都没有),然后用一个精心命名的环境变量将其覆盖。我在this example上对设置进行了建模。

不幸的是,CircleCI似乎忽略了环境变量,而是使用了虚拟值。我设置不正确吗?仅供参考,我使用/config/local.js(无环境变量)覆盖本地计算机上的密码,一切正常...

/config/datastores.js:

module.exports.datastores = {
    postgresqlTestDb: {
      adapter: 'sails-postgresql',
      host: 'test-postgres.myhost.com',
      user: 'postgres',
      password: 'PASSWORD',
      database: 'my-db',
    },
};

CircleCI中的环境变量:

sails_datastores__postgresqlTestDb__password = theRealPassword

CircleCI错误:

1) "before all" hook:
   Error: done() invoked with non-Error: {"error":{"name":"error","length":104,"severity":"FATAL","code":"28P01","file":"auth.c","line":"307","routine":"auth_failed"},"meta":{"adapter":"sails-postgresql","host":"test-postgres.myhost.com","user":"postgres","password":"PASSWORD","database":"","identity":"postgresqlTestDb","url":"postgres://postgres:PASSWORD@test-postgres.myhost.com:5432/my-db"}}
    at sails.lift (test/lifecycle.test.js:46:23)
...

错误的重要部分:

"url":"postgres://postgres:PASSWORD@test-postgres.myhost.com:5432/my-db"

我想改为连接到postgres://postgres:theRealPassword@test-postgres.myhost.com:5432/my-db ...

1 个答案:

答案 0 :(得分:0)

我只是为整个连接URL设置了一个ENV变量。看起来像这样:

sails_datastores__default__url: postgresql://user:passwrod@host:port/databse

我认为在您的示例中,您缺少“默认”部分