Héberger une application keystonejs avec openshift
-
23-12-2019 - |
Question
Je reçois toujours un 503 mais aucune erreur dans le journal lorsque j'essaie d'héberger mon application keystone.js sur openshift, quelqu'un a-t-il réussi à héberger une application keystone avec eux ?Tout fonctionne bien sur localhost.
J'utilise une nouvelle installation de keystone.js sans blog ni cloud.
La solution
Vous fournissez très peu d’informations pour vous donner une réponse définitive.À quelles options passez-vous keystone.init()
?Utilises-tu dotenv
?Si oui, qu'est-ce que tu mets là ?Avez-vous défini des variables d'environnement en utilisant rhc set-env
?
Je demande parce qu'un coupable courant (mais pas de loin le seul) des erreurs 503 dans les applications Node.js sur OpenShift est un numéro de port remplaçant celui d'OpenShift.Keystone regarde process.env.PORT
avant de regarder process.env.OPENSHIFT_INTERNAL_PORT
.Alors, si vous avez PORT
réglé sur votre .env
ou avec rhc set-env
il aura la priorité sur OPENSHIFT_INTERNAL_PORT
.
Je suis tombé sur une question similaire sur le Groupe Google KeystoneJS.Dans cet autre cas, le développeur avait ajouté une cartouche MONGODB à son application, mais n'avait pas défini la chaîne de connexion pour la cartouche dans Keystone.
Si tel est également votre cas, vous devez définir le Keystone mongo
choix dans Keystone.init()
ou en utilisant Keystone.set('mongo', 'connection_sring')
.Lorsque vous avez créé la cartouche, vous avez obtenu une URL et des informations d'identification.OpenShit les transmet à votre application dans des variables d'environnement.Vous pouvez créer la chaîne de connexion mongo comme suit :
var connectionString = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" + process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" + process.env.OPENSHIFT_MONGODB_DB_HOST + '/' + process.env.OPENSHIFT_APP_NAME;
keystone.set('mongo', connectionString);
or
keystone.init({
...
mongo: connectionString,
...
});
Ou vous pouvez utiliser rhc set-env
pour régler le MONGO
variable d'environnement comme suit :
rhc set-env MONGO=http://{username}:{password}@{connection url}/{dbname} -a your_app_name
Le connection url
ci-dessus est celui que vous avez obtenu d'OpenShift lorsque vous avez créé la cartouche.Si cela ressemble à une URL MONGODB standard (par ex. mongodb://127.6.85.129:27017/
).
Ce ne sont que mes meilleures suppositions, étant donné que votre question est un peu mince sur les détails.Vous souhaiterez peut-être publier plus de détails afin que nous puissions évaluer plus précisément votre problème.