2017-09-26 3 views
0

Plus tôt dans OpenShiftNode.js app la variable d'environnement process.env.OPENSHIFT_REPO_DIR était disponible. Non, j'ai migré vers OpenShift 3, et j'ai une erreur.Comment accéder à process.env.OPENSHIFT_REPO_DIR dans OpenShift?

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) 

Toute idée?

Répondre

1

Sous OpenShift 3, si vous utilisez les générateurs S2I fournis pour différentes langues, dans la plupart des cas, le code source de votre application se trouvera dans le répertoire /opt/app-root/src. Il n'y a pas de variable d'environnement spécifiant ce qu'est le répertoire.

Pour confirmer le répertoire, vous pouvez utiliser oc rsh pour obtenir un shell interactif dans le conteneur de votre application, puis exécuter pwd. Normalement, le répertoire par défaut est l'emplacement de votre code d'application.

+0

Fin, corrigé, mais semble 'OpenShift' ne va pas chercher la source, avez-vous une idée? https://stackoverflow.com/questions/46136375/why-openshift-gear-use-so-much-space –

+0

Qu'en est-il de 'process.env.OPENSHIFT_NODEJS_PORT',' process.env.OPENSHIFT_NODEJS_IP', ces variables d'environnement sont-elles disponibles? –

+0

Non. Si '' OPENSHIFT_NODEJS_PORT'' n'est pas défini, utilisez le port 8080. Si '' OPENSHIFT_NODEJS_IP'' n'est pas défini, utilisez l'option '' 0.0.0.0''. –