Docker

L'informatique avec les logiciels libre c'est génial
Avatar du membre

Auteur du sujet
Coddy
Administrateur du site
Administrateur du site
France
Messages : 510
Enregistré le : lun. 2 sept. 2013 10:44
Montant en poche : Fermé
Banque : Fermé
 
Relax-Arcade :  9
Localisation : Tout près de toi ...
Envoyer le rappel de Prediction Ligue à la première adresse email : No
Envoyer le rappel de Prediction Ligue à la deuxième adresse email : No
    Windows 10 Firefox
Genre :
Zodiaque :
Contact :
Statut : Hors ligne

Docker

Message non lu par Coddy » mar. 11 déc. 2018 16:10

Voici une expérience avec la technologie Docker. Lisez la documentation, essayez-le et laissez-moi un message, des suggestions ou des questions.

Docker est une technologie logicielle fournissant des conteneurs. Ceci est utilisé pour créer plusieurs conteneurs sur un hôte Linux pour le déploiement de nos applications.

Dockérisez votre application NodeJS avec Nginx en tant que proxy inverse
Normalement, l'application Dockerizing Node est une tâche simple. Nous pouvons utiliser les images directement intégrées à la construction disponibles dans Docker hub.

Cette image Docker est suffisante pour déployer l'application NodeJS. Toutes les versions de l'image de nœud lors de la construction sont disponibles dans le concentrateur.
  1. Introduction aux conteneurs Docker - partie 1
    Docker peut créer des conteneurs pour déployer ces micro-services. C'est un outil / logiciel pour créer des conteneurs rapidement et efficacement à partir de la ligne de commande Linux.
    Conteneur Building Node à partir de l'image nodejs en construction

    Voir l'exemple de fichier Docker pour une image onbuild Docker. Toutes ces choses sont disponibles dans Github.

    Code : Tout sélectionner

    À partir du noeud: 8.13.0-stretch
    
    RUN mkdir -p / usr / src / app
    WORKDIR / usr / src / app
    
    ONBUILD ARG NODE_ENV
    ONBUILD ENV NODE_ENV $ NODE_ENV
    ONBUILD COPY package.json / usr / src / app /
    ONBUILD RUN npm install && npm cache clean --force
    COPIE ONBUILD. / usr / src / app
    
    CMD ["npm", "start"]
    Ceci est un exemple pour NodeJS version 8. Vérifiez ce Github pour tous les fichiers Docker officiels.

    Je n'explique pas les lignes du fichier Docker ci-dessus. Je crois que vous êtes au courant.

    Dans cet article, je vous explique une méthode de déploiement personnalisée. L'exigence réelle est comme ça.

    Dockerize l'application NodeJS s'exécutant sur une machine virtuelle (machine virtuelle) dotée d'un proxy inverse Nginx. Nginx est responsable de quelques redirection 301 et redirection SSL du site principal. Nous devons donc inclure cette même configuration dans notre conteneur Docker pour Nginx.

    Dans ce cas, nous devons lancer Node (après avoir extrait les modifications de repo, build ..) et de Nginx. Normalement, nous ne pouvons commencer qu’une chose avec le fichier Docker. Sinon, vous devez démarrer les deux processus à l'aide d'un script.

    Oui, vous pouvez ajouter les commandes de démarrage pour NodeJS et Nginx dans un fichier texte en tant que script bash et vous pouvez exécuter ce script en utilisant Docker.

    Ressemble à quelque chose comme:

    Code : Tout sélectionner

    DE ....
    
    ....
    ....
    ....
    CMD ["sh", "/root/start.sh"]
    Ici, le fichier start.sh contient les commandes de démarrage pour les applications NodeJS et Nginx.

    Utilisation de Linux supervisord
    C'est un moyen standard de démarrer plusieurs processus. Nous pouvons ajouter la commande de démarrage de supervisord à la dernière ligne du fichier Docker. Lorsque le conteneur démarre, il lance le démon supervisord et ce dernier gère d'autres processus.

    Supervisor est un système client / serveur qui permet à ses utilisateurs de surveiller et de contrôler un certain nombre de processus sur des systèmes d'exploitation de type UNIX. Plus sur supervisord
    Dans notre cas, nous devons démarrer l'application NodeJS et Nginx.

    Les exemples et l'extrait de code ajoutés dans cet article servent uniquement à expliquer certaines choses. Vous devez modifier les choses en fonction de vos besoins.

    Comme je l'ai mentionné, vous pouvez modifier toutes les lignes de Dockerfile et d'autres éléments en fonction de vos besoins.

    Ici, le fichier Docker se termine par un fichier start.sh contenant la commande de démarrage NodeJS, puis la commande de démarrage supervisord. Vous pouvez simplement utiliser la commande supervisord en tant que commande de démarrage de votre conteneur de menu fixe.

    Dans mon cas, il ne s’agissait pas d’un «démarrage npm» et j’ai eu quelques problèmes pour exécuter la commande «node» à l’aide de supervisord.

    Dans ce cas, vous devez donc inclure les fichiers suivants dans votre référentiel de code.
    • Dockerfile
    • Fichier de configuration Nginx
    • Fichier Start.sh
    • Fichier de configuration Supervisord.
    Conserver le fichier de configuration dans votre référentiel vous aidera à apporter des modifications sans problème. Considérez que vous souhaitez ajouter une redirection 301 supplémentaire dans le fichier de configuration Nginx, car nous conservons la configuration dans le référentiel, vous pouvez simplement ajouter la ligne dans ce fichier. La prochaine construction se chargera du déploiement de cette règle.

    Parce que, à chaque fois, la conf copie de repo à conteneur.
    Fichier Docker pour déployer NodeJS avec un proxy Nginx.

    Code : Tout sélectionner

    D'Ubuntu: 16.04
    
    # 80 = HTTP, 443 = HTTPS, 3000 = serveur MEAN.JS, 35729 = chargement du foie, 8080 = inspecteur de nœuds
    EXPOSER 80 4000
    
    # Installer les utilitaires
    RUN apt-get update -q \
     && apt-get install -yqq \
     curl \
     git \
     ssh \
     gcc \
     faire \
     essentiel de la construction \
     libkrb5-dev \
     sudo \
     vim \
     net-tools \
     apt-utils \
     superviseur \
     && apt-get clean \
     && rm -rf / var / lib / apt / lists / * / tmp / * / var / tmp / *
    
    # Installer nodejs
    RUN curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
    Lancez sudo apt-get install -yq nodejs \
     && apt-get clean \
     && rm -rf / var / lib / apt / lists / * / tmp / * / var / tmp / *
    
    # Installer et copier Nginx
    RUN apt-get update \
        && apt-get install -y nginx
    
    COPY par défaut / etc / nginx / sites-enabled /
    
    # Copy supervisord conf
    COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
    
    # Copier le script de démarrage
    COPY start.sh /
    
    # Étapes de déploiement du noeud
    RUN mkdir -p / usr / src / app
    WORKDIR / usr / src / app
    COPY package.json / usr / src / app /
    RUN npm install && npm cache clean --force
    COPIE . / usr / src / app
    RUN npm run build: ssr [changez selon l'étape de construction de votre application]
    
    
    CMD ["/ bin / sh", "/start.sh"]
    
    Choses que vous devez garder à l'esprit:
    1. # Install nodejs
      Dans cette section, vous devez modifier la version de NodeJS selon vos besoins.
    2. # Install and copy Nginx
      Voici la copie du fichier de configuration nginx pour votre site web / application fonctionnant en proxy sur NodeJS. Cela aussi, vous devez vous assurer que le bon.
    3. # Copy supervisord conf
      C'est le fichier de configuration supervisord.
    4. # Copy start script
      Ceci est le script de démarrage. Dans mon cas, je commence Node et Supervisord en utilisant ce script bash.
    Exemple de fichier de configuration supervisord

    Code : Tout sélectionner

    [supervisord]
    nodaemon=true
    
    [program:nginx]
    command=/usr/sbin/nginx -g "daemon off;"
    autostart=true
    autorestart=true
    priority=10
    stdout_logfile=/dev/stdout
    stdout_logfile_maxbytes=0
    stderr_logfile=/dev/stderr
    stderr_logfile_maxbytes=0
    stdout_events_enabled=true
    stderr_events_enabled=true
    Exemple de fichier start.sh

    Code : Tout sélectionner

    #!/bin/bash
    # Starting Node 
    
    cd /usr/src/app
    nohup node dist/server.js &
    #Starting Nginx
    /usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
    Encore une fois, ces codes peuvent ne pas correspondre à vos besoins. Cependant, cela peut vous aider.
    Changez-le selon vos besoins et déployez-le.

    Merci!!
La rapidité et la fiabilité de votre site internet chez Wantété Hébergeur Français Banane.5.gif
---
Votre site et forum à 0 €/mois sans pub ni conditions. Banane.30.gif *v* [banane.16.gif

Répondre

Last 30 Members Who Visited This Topic

factor23, Coddy