web-dev-qa-db-fra.com

Configuration de Dockerfile pour ASP.NET Core 2.1 Angular Projet

Je suis un novice complet sur Docker et j'essaie actuellement de créer un projet ASP.NET Core 2.1 avec le projet Angular. J'utilise un conteneur Linux sur Docker pour Windows et mon IDE est une édition communautaire VS2017.

Actuellement, je reçois cette erreur:

[1] Assurez-vous que 'npm' est installé et se trouve dans l'un des répertoires PATH . La variable d'environnement PATH actuelle est la suivante: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin Assurez-vous que l'exécutable se trouve dans l'un de ces répertoires ou mettez à jour votre PATH.

Je crois que j'ai besoin d'installer Node.js dans mon instance Docker ou quoi que vous appeliez, et cela devrait se faire via Dockerfile. S'il vous plaît signaler mes erreurs dans mon hypothèse. Et comment faire en sorte que les dépendances soient installées quel que soit le type de conteneur que j'utilise? Je m'attends à ce que mes futurs projets soient installés sur différentes plates-formes.

4
eSPiYa

Dans l'image de conteneur Microsoft/dotnet: 2.1-aspnetcore-runtime npm/nodejs n'est pas installée. Pour l'installer dans le conteneur, mettez à jour le fichier docker

FROM Microsoft/dotnet:2.1-aspnetcore-runtime AS base

# Setup NodeJs
RUN apt-get update && \
    apt-get install -y wget && \
    apt-get install -y gnupg2 && \
    wget -qO- https://deb.nodesource.com/setup_6.x | bash - && \
    apt-get install -y build-essential nodejs
# End setup

WORKDIR /app
EXPOSE 80

Seul le rechargement en direct de la CLI Angular ne fonctionne pas.

7
Marcel
1
San Jaisy

En raison de la publication se produit sur l'image basée Microsoft/dotnet: 2.1-sdk. Donc, cette image de base contient seulement sdk dotnet mais pas npm a installé cette image de base . Il y a 2 étapes pour résoudre ce problème:

1) Ajouter des nœuds d’installation à des réseaux existants: 2.1-sdk tel qu’écrit en réponse par @Marcel.

ou 

2) Vous pouvez ajouter une étape supplémentaire à Dockerfile pour construire le côté frontal basé sur NOEUD image et construire votre Angular. Une fois la construction réussie, vous obtiendrez les fichiers frontend générés et les copierez dans l'image d'exécution à l'étape finale. Donc, vous n'ajouterez aucune installation à dotnet sdk avec cette option et avec un fichier Docker avec plusieurs étapes, vous construirez le côté serveur séparément et le site frontal séparément.

Si vous souhaitez en faire une deuxième option, veuillez suivre le lien ci-dessous pour créer une interface sur Dockerfile séparément avec ASP.NET Core sur le même fichier docker:

Application Dockerize ASP.NET Core Angular (erreur résolue: la commande «npm install» s'est terminée avec le code 127.)

0
Alakbar