2016-10-13 1 views
1

Notre application est l'une des rares à fonctionner sur DEA. Le DEA, nous avons pu utiliser un buildbpack personnalisé spécifique:Pousser à Diego: Impossible d'écrire: Pas d'espace disponible sur l'appareil

https://github.com/ihuston/python-conda-buildpack

Maintenant que nous devons passer à autre chose runtime Diego, nous manquons d'espace tout en poussant l'application. Je crois que l'espace disque n'est requis que pendant la mise en scène, car plusieurs bibliothèques viennent avec le buildpack et doivent être construites (nous avons besoin de toute la pile scientifique python, qui est incluse dans le buildpack ci-dessus).

Le script de génération génère tout bien, sauf que l'application ne peut pas démarrer. Les journaux indiquent alors:

2016-10-13T19:10:42.29+0200 [CELL/0]  ERR Copying into the container failed: stream-in: nstar: error streaming in: exit status 2. Output: tar: ./app/.conda/pkgs/cache/db552c1e.json: Wrote only 8704 of 10240 bytes 

et plus nombreux fichiers:

2016-10-13T19:10:42.29+0200 [CELL/0]  ERR tar: ./app/.conda/pkgs/cache/9779607c273dc0786bd972b4cb308b58.png: Cannot write: No space left on device 

puis

2016-10-13T20:16:48.30+0200 [API/0]  OUT App instance exited with guid b2f4a1be-aeda-44fa-87bc-9871f432062d payload: {"instance"=>"", "index"=>0, "reason"=>"CRASHED", "exit_description"=>"Copying into the container failed", "crash_count"=>14, "crash_timestamp"=>1476382608296511944, "version"=>"ca10412e-717a-413b-875a-535f8c3f7be4"} 

Lorsque vous essayez d'ajouter plus de quota de disque (ci-dessus 1G) il y a une erreur:

Server error, status code: 400, error code: 100001, message: The app is invalid: disk_quota too much disk requested (must be less than 1024) 

Y at-il un moyen de donner un peu plus de s rythme? Au moins pour le processus de construction?

+0

J'ai également essayé avec le buildpack par défaut, mais il échoue en raison d'une dépendance spécifique (qui est cruciale pour l'application): Shapely, la construction donne: OSError: Impossible de trouver la bibliothèque geos_c ou de charger l'une de ses variantes ['libgeos_c.so.1', 'libgeos_c.so'] – ratatatat

Répondre

2

Le programme d'installation de Conda de https://github.com/ihuston/python-conda-buildpack installe par défaut avec la bibliothèque Intel MKL. Maintenant, c'est généralement une bonne chose, mais il semble qu'il y ait trop d'espace et ne puisse donc pas être déployé.

I ont adapté le buildpack et ajouté à la ligne

 $CONDA_BIN/conda install --yes --quiet --file "$BUILD_DIR/conda_requirements.txt" 

Le drapeau nomkl

 $CONDA_BIN/conda install nomkl --yes --quiet --file "$BUILD_DIR/conda_requirements.txt" 

Comme décrit dans le blog de continuums ici:

https://www.continuum.io/blog/developer-blog/anaconda-25-release-now-mkl-optimizations

Ce sera alors utiliser OpenBLAS à la place et entraîne une gouttelette beaucoup plus petite (175M au lieu de 330MB) et le déploiement peut finir avec succès.

2

Vous pouvez utiliser un fichier .cfignore comme un fichier .gitignore pour exclure tous les fichiers inutiles de cf push. Peut-être que si vous ne faites que pousser ce qui est nécessaire, l'espace disque pourrait être suffisant.

https://docs.developer.swisscom.com/devguide/deploy-apps/prepare-to-deploy.html#exclude

+0

J'utilise déjà les fichiers. * ignorer, voici ce qui est téléchargé: "Uploading 1.3M, 187 fichiers" – ratatatat

+0

Le push cf fonctionne, produisant ceci: OUT Mise en attente terminée OUT Chargement de la gouttelette, création d'un cache d'artefacts ... OUT Chargement de la gouttelette ... OUT Envoi du cache d'artefacts de construction ... OUT Envoi du cache d'artefacts de build (32.3M) OUT gouttelettes Uploaded (311.3M) OUT OUT complète Transfert conteneur OUT Création Destruction conteneur OUT créé avec succès container' conteneur OUT avec succès détruit '' ' Mais lorsque vous démarrez l'application que je reçois de la erreur d'espace d'en haut – ratatatat