3
votes

Exécution de l'application Angular en tant qu'image Docker à l'aide de Node js

Essayer de créer une application angulaire dans docker et de l'exécuter en tant que conteneur dans mon local en utilisant Node js.

J'ai utilisé l'image de construction en utilisant ci-dessous Dockerfile, mais je ne suis pas sûr de ce qui me manque lors de l'exécution. Quelqu'un peut-il me signaler?

Dockerfile:

docker run -p 4201:4200 example

Image créée avec la commande ci-dessous avec succès

docker build -t example .

J'essaie d'exécuter l'image en utilisant la commande ci-dessous, mais cela n'aide pas

FROM node:10.15.3
ENV HOME=/home
WORKDIR $HOME
RUN npm config set strict-ssl false \
    && npm config set proxy http://proxy.xxxxxx.com:8080
COPY package.json .
RUN npm install


3 commentaires

Qu'essayez-vous de réaliser? votre image de construction installera simplement les dépendances pour votre application angulaire.


Je ne vois pas le conteneur docker en cours d'exécution après l'exécution de la commande docker run comme ci-dessus. J'ai vérifié à l'aide de docker ps.


Si j'étais vous, j'ajouterais des détails pour savoir s'il s'agit d'un cas d'utilisation de production ou de développement. Vous pourriez obtenir une réponse différente en fonction de cela. Fondamentalement, le cli ng n'est pas adapté pour servir des applications en production. Vous devez utiliser un serveur approprié comme nginx ou quelque chose de similaire.


4 Réponses :


3
votes

votre Dockerfile n'exécute / ne sert pas votre application, pour ce faire, vous devez:

  • installer angular / cli
  • copier l'application
  • exécuter / diffuser l'application
FROM node:10.15.3

RUN npm config set strict-ssl false \
    && npm config set proxy http://proxy.xxxxxx.com:8080

# get the app
WORKDIR /src
COPY . .

# install packages
RUN npm ci
RUN npm install -g @angular/cli

# start app
CMD ng serve --host 0.0.0.0

j'espère que cela vous aidera.


2 commentaires

JFYI, ce n'est pas une bonne pratique d'exécuter une application angulaire sur l'environnement de production en utilisant ng serve .


Pour les débutants de Docker complet, cet article peut être utile pour comprendre si vous souhaitez exécuter Angular dans Docker thecodeframework.com/...



2
votes

Le conteneur a besoin d'un processus de premier plan en cours d'exécution, alors il ne se fermera pas. Sinon, le conteneur se fermera directement.

Pour votre cas, vous devez COPIER votre projet nodejs dans le conteneur lorsque docker build , et également démarrer le projet dans CMD comme < code> CMD ["npm", "start"] . Comme le serveur Web ne se ferme pas, votre conteneur ne se fermera pas.

Un bon article ici pour savoir comment ancrer une application Web Node.js.


1 commentaires

L'article était très bon pour connaître un point de base sur chaque étape.




0
votes

Essayez également le Dockerfile suivant!

FROM node:alpine

# get the app
WORKDIR /src

# install packages
RUN npm ci
RUN npm install -g @angular/cli
COPY package.json .
RUN npm install
COPY . .

# start app
CMD ["ng", "serve", "-o"]


0 commentaires