2017-10-06 5 views
0

Déploiement plombier activé application R à Bluemix/Cloud FoundryDéploiement plombier activé l'application R pour Bluemix/Cloud Foundry

Je suis en train de déployer plombier permis application R à Bluemix/Cloud Foundry utilisant Pack https://github.com/beibeiyang/cf-buildpack-r.git build

Le application est trivial (app.R):

library(plumber) 

api <- plumb("api.R") 

PORT <- as.numeric(Sys.getenv('PORT')) 
message (PORT) 

api$run(port=PORT) 

et dans mon Procfile je

web: Rscript app.R 

Dans les fichiers journaux, je vois que l'installation (y compris les dépendances) se termine avec succès et mon message est imprimé.

Le problème est que je ne peux pas accéder à l'application déployée. Si j'utilise

health-check-type: port 

alors l'application échoue à la vérification de l'état de santé et n'est pas accessible du tout. Si j'utilise

health-check-type: process 

L'application démarre mais essaie d'accéder à son adresse URL dans 502 mauvaise passerelle.

+0

Je ne sais pas R, donc je ne peux pas aider trop, mais la différence entre les deux contrôles de santé est que Le processus ne fera que vérifier que votre processus est opérationnel, tandis que le port vérifiera s'il fonctionne et s'il écoute sur le port assigné. Comme la vérification de l'intégrité du port échoue, il est probable que l'application n'écoute pas correctement les connexions entrantes. Vérifiez que vous obtenez une valeur de la variable d'environnement PORT (elle sera toujours 8080). Peut-être ajouter également une connexion à votre application afin que vous puissiez mieux comprendre ce qu'il fait. J'espère que cela pourra aider! –

+0

Merci Daniel. Je comprends que l'échec de la vérification du port n'est pas un simple inconvénient, mais indique un problème fondamental. Malheureusement, la journalisation affiche une valeur de port aléatoire, comme prévu, mais aucune autre information. –

Répondre

0

Ressemble par défaut, plombier se lie au mauvais hôte, les travaux suivants:

api$run(host="0.0.0.0", port=PORT)