0
votes

Pourquoi je ne peux pas déployer mon application à Docker avec succès

J'essaie de déployer mon application à Docker. Mais je rencontre un problème avec ce processus.

Voici ma structure de dossier: p>

  • Contrôles LI>
  • modèle li>
  • Sémantique-UI-Master Li>
  • SRC LI>
  • dockerfile li>
  • .Dockerigne li>
  • Package JSON LI> ul>

    Voici mon code dans le DockerFile: P>

     ---> Running in ff6c4bf4ce8e
    npm WARN using --force I sure hope you know what you are doing.
    The command '/bin/sh -c npm cache clean --force && npm install' returned a non-zero code: 137
    


0 commentaires

3 Réponses :


1
votes

Essayez d'ajouter la ligne " exécuter ls " dans votre dockerfile après " copie.. " et reconstruit l'image avec le drapeau " - no-cache < / Strong> ", vérifiez la sortie de la console pour voir si vos fichiers sont copiés dans l'image ou non. Si cela n'ouvre pas le fichier .Dockerignore pour voir si vous ignorez le fichier " package.json " ou tout fichier que vous souhaitez copier.


7 commentaires

J'ai compris! Merci beaucoup! Laissez-moi essayer!


J'ai eu cette ligne rouge npm avertir en utilisant --force, j'espère bien que vous savez ce que vous faites.


Le fichier est complet et il est là


la commande '/ bin / sh -c ls && npm cache propre --force && npm installer' renvoyé un code non zéro: 130 même erreur


J'utilise Mac OS. Macbook Pro


Oh si le fichier est toujours là et l'erreur différente maintenant. Techniquement, vous n'avez pas besoin de nettoyer le cache si votre code source est propre. Essayez de supprimer votre commande d'exécution et de votre commande CMD, construisez une image statique, exécutez-la et exécuté à l'aide de " docker exécuté -it" conteneur_name_or_id> bash "et CD dans" / usr / src / app "Essayez de déboguer de l'intérieur en appelant" Cache NPM Clean --force "Alors" NPM Installez "pour voir l'erreur.


Je pense que @emix a raison, essayez sa solution pour augmenter la limitation de l'utilisation de la RAM pour Docker.



2
votes

Code d'erreur 137 signifie que vous avez OOM . Cela se produit, car les macos impose des limites de la RAM sur Docker, par opposition à Linux où un conteneur peut manger autant de RAM qu'il veut .

Etant donné que NPM installer peut consommer beaucoup de ressources, vous devez augmenter votre limite de mémoire pour Docker dans le Paramètres avancés Docker .

Références supplémentaires :


1 commentaires

J'ai compris! Merci beaucoup!



1
votes

de la recherche sur Internet, la plupart des gens ont déclaré que l'erreur NPM 137 est causée par le manque de mémoire.

Qu'est-ce que vous pouvez essayer?

  1. Exécuter NPM installer en dehors de la construction Docker, puis copiez simplement les dépendances
  2. Augmentez la mémoire d'exécution de Docker Desktop comme expliqué dans le Docs : Préférences -> Avancé -> Mémoire

3 commentaires

J'ai compris! Merci beaucoup!


Je pense que je peux essayer de construire des images à travers l'API DockerHub Github


Ils ont accès à la construction à distance