如何在 OpenShift 中达到 process.env.OPENSHIFT_REPO_DIR?
How to reach process.env.OPENSHIFT_REPO_DIR in OpenShift?
早期在 OpenShift
Node.js
应用程序中,process.env.OPENSHIFT_REPO_DIR
环境变量可用。不,我迁移到 OpenShift 3
,但出现错误。
var apn = require('apn');
var optionsP = {
token: {
key: process.env.OPENSHIFT_REPO_DIR + 'APNsAuthKey_AQ34EHZCDQ.p8',
keyId: "AQ34EHZCDQ",
teamId: "AQUJ3H44A4",
},
production: true,
};
var apnProviderP = new apn.Provider(optionsP);
/opt/app-root/src/node_modules/apn/lib/credentials/token/prepare.js:15
throw new VError(err, "Failed loading token key");
^
VError: Failed loading token key: ENOENT: no such file or directory, open 'undefinedAPNsAuthKey_AQ34EHZCDQ.p8'
at prepareToken (/opt/app-root/src/node_modules/apn/lib/credentials/token/prepare.js:15:13)
at config (/opt/app-root/src/node_modules/apn/lib/config.js:42:31)
at new Client (/opt/app-root/src/node_modules/apn/lib/client.js:11:19)
at EventEmitter.Provider (/opt/app-root/src/node_modules/apn/lib/provider.js:12:19)
at Object.<anonymous> (/opt/app-root/src/server.js:26:20)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
有什么想法吗?
在 OpenShift 3 下,如果使用针对不同语言的捆绑 S2I 构建器,在大多数情况下,您的应用程序源代码将驻留在目录 /opt/app-root/src
中。没有指定目录的环境变量。
要确认目录是什么,您可以使用 oc rsh
在您的应用程序的容器中获取交互式 shell,然后 运行 pwd
。通常默认目录是您的应用程序代码所在的位置。
早期在 OpenShift
Node.js
应用程序中,process.env.OPENSHIFT_REPO_DIR
环境变量可用。不,我迁移到 OpenShift 3
,但出现错误。
var apn = require('apn');
var optionsP = {
token: {
key: process.env.OPENSHIFT_REPO_DIR + 'APNsAuthKey_AQ34EHZCDQ.p8',
keyId: "AQ34EHZCDQ",
teamId: "AQUJ3H44A4",
},
production: true,
};
var apnProviderP = new apn.Provider(optionsP);
/opt/app-root/src/node_modules/apn/lib/credentials/token/prepare.js:15
throw new VError(err, "Failed loading token key");
^
VError: Failed loading token key: ENOENT: no such file or directory, open 'undefinedAPNsAuthKey_AQ34EHZCDQ.p8'
at prepareToken (/opt/app-root/src/node_modules/apn/lib/credentials/token/prepare.js:15:13)
at config (/opt/app-root/src/node_modules/apn/lib/config.js:42:31)
at new Client (/opt/app-root/src/node_modules/apn/lib/client.js:11:19)
at EventEmitter.Provider (/opt/app-root/src/node_modules/apn/lib/provider.js:12:19)
at Object.<anonymous> (/opt/app-root/src/server.js:26:20)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
有什么想法吗?
在 OpenShift 3 下,如果使用针对不同语言的捆绑 S2I 构建器,在大多数情况下,您的应用程序源代码将驻留在目录 /opt/app-root/src
中。没有指定目录的环境变量。
要确认目录是什么,您可以使用 oc rsh
在您的应用程序的容器中获取交互式 shell,然后 运行 pwd
。通常默认目录是您的应用程序代码所在的位置。