‫Tout à fait, Nuno me demande si j’ai besoin de ma commande de fichier Docker pour démarrer le serveur Cassandra, puis d’importer un
‫schéma de base de données.
‫Quelle est la meilleure façon de le faire.
‫Donc, si quelqu'un ne vous a pas déjà répondu à un chat parce que cela se
‫produit parfois pendant que je décroche mal, le script de point d'entrée est en quelque sorte le moyen universel de faire les choses au démarrage du conteneur.
‫Cela signifie donc que vous avez dans votre fichier Docker le point d’entrée et que vous avez cette DMO.
‫Maintenant, dans mon cours de maîtrise Docker, je me concentre sur le CMT car c’est vraiment ce que vous devez
‫comprendre pour être au début. Ce que j’ai besoin d’ajouter, c’est une section d’au moins une conférence sur le point d’entrée et
‫une discussion sur les différentes façons de le faire. faire des points d'entrée.
‫Ainsi, un point d’entrée lorsque nous le décomposons est le fait que Docker exécute deux parties d’une même
‫ligne ou d’une seule commande exécutée au démarrage de votre conteneur.
‫Mais le truc, c’est avec la magie du script bash que vous pouvez prendre le point d’entrée et que, au lieu d’être simplement
‫le début de la commande qui pourrait se trouver devant le CMT, il peut exécuter un script puis à la
‫fin de celui-ci. vous pouvez lui dire de passer l'exécution au reste de la ligne de commande.
‫Donc cela n’a peut-être pas beaucoup de sens, mais allons voir si le monde réel est sorti et voyons ce que
‫nous pouvons voir. Je vais donc lancer ma suite, car vraiment tout système de stockage de données persistant agira de
‫la même
‫manière ici et si je lève les yeux sur
‫Docker Hub, alors je suis au Docker Hub, mon image officielle suivante.
‫Et si je clique sur l'une de ces versions, je récupèrerai le fichier docker qui est open source. Dans
‫ce fichier, vous trouverez beaucoup de choses.
‫Évidemment, il s’agit d’installer ma suite et d’obtenir la suite correctement configurée, mais
‫au bas de la page, vous remarquerez deux choses. C’est notamment la copie d’un script shell
‫dans un emplacement donné.
‫Mais ici, il s’agit de la partie clé du
‫script de point d’entrée, qui ne doit pas obligatoirement être un script.
‫Encore une fois, il s’agit simplement de prendre si, s’il existe le point d’entrée et qu’ils voient OMD, il suffit
‫de les assembler et de les exécuter tous en une ligne.
‫Donc, vous verriez cela de la même manière que le point d’entrée est utilisé soit pour le début d’une commande que peut-être que si
‫vous utilisez Docker pour exécuter un utilitaire de ligne de commande, je le fais en 82 ping
‫voir si je peux euh alors je avoir un github.
‫J'ai plutôt une image Docker et j'obtiens un référentiel hub derrière elle, qui exécute un utilitaire de ligne de commande
‫unique dans un conteneur.
‫Et la façon dont cela fonctionne ici est que j'ai le point d'entrée étant la commande elle-même.
‫Et puis puisque le CMB part après, quand je les ai tous les deux dans mon fichier Docker, ils les
‫commutent simplement ensemble.
‫Je l'ai en cours d'exécution sur le CRM D par défaut, donc si vous y réfléchissez lorsque j'exécute cette commande
‫à partir de la commande, je peux exécuter Docker.
‫Brett Fisher slash payant.
‫Et puis je viens d'appuyer sur entrée et ensuite il exécutera automatiquement la commande de version.
‫Mais si je continue à taper dans cette ligne de commande à droite.
‫Tucker courir.
‫Brett Fisher, si je fais juste ça, ça va tirer l'image.
‫Whoops désolé, permettez-moi de changer d'écran sur
‫vous. Par conséquent, si j'exécute cette image, elle sera exécutée par défaut et l'aide sera supprimée, car c'est ce que le fichier
‫docker lui a demandé de faire dans la ligne D de CRM.
‫Mais si je modifie simplement quelque chose à la fin car je me souviens que le format d'une
‫commande d'exécution de docker est qu'il permet d'exécuter Docker, puis d'exécuter vos options, puis l'image que vous allez définir, vous allez l'exécuter,
‫puis quoi que ce soit après. qui remplace le CND en ligne.
‫C'est donc comme un remplacement dynamique de la CMT.
‫Donc, si je lance simplement ici Google dot com, il remplacera la version de tiret qui serait exécutée par défaut.
‫Vous pouvez donc utiliser Docker comme un utilitaire de ligne de commande, ce qui est une excellente façon de procéder.
‫C'est essentiellement mon exemple de comment faire cela.
‫L’autre façon de le
‫faire est de ne pas utiliser le script shell, c’est pourquoi nous allons
‫voir ici que le point d’entrée définit ici le fichier à exécuter.
‫Et puis, si je me contente de faire défiler tout le chemin jusqu'au sommet et que je fais ce répertoire en huit points, je monte en quelque
‫sorte dans un répertoire, je le trouve en fait dans un autre fichier.
‫C'est le script du point d'entrée du menu fixe copié dans la construction.
‫Maintenant dans ce script ce qui se passe.
‫Il y a des tonnes de choses ici.
‫Probablement au moins cent lignes.
‫Oui.
‫En fait, c'est des centaines de lignes.
‫Mais la partie magique ici est la suivante.
‫Dézoomer.
‫D'accord.
‫Allez-vous barre de défilement.
‫Je ne veux pas te voir.
‫Passons simplement
‫à Ras, ce qui est essentiel.
‫Exactement.
‫Et puis le signe dollar qui informe le shell de la fin du script, passez l’exécution au reste de la ligne de commande, qui
‫correspond à ce qu’il y a dans la CMT et, dans ce cas, c’est le démon
‫qui me reste.
‫Donc, ce qui va essentiellement se passer lorsqu'un conteneur démarrera dans ce cas, c'est qu'il exécutera le script.
‫Il arrive exactement à la fin du script. Faites ce que je vous ai dit à la
‫fin de cette commande et exécutez votre démon.
‫Tu es toi mon démon suite au premier plan pour qu'il continue à courir.
‫Désormais, le script regroupe tout ce que vous n'aviez probablement pas réalisé se passait en arrière-plan lorsque vous
‫avez démarré un conteneur de base de données.
‫Il crée l'utilisateur par défaut que vous souhaitez définir.
‫Il change le mot de passe root pour tout ce que vous voulez définir.
‫Il crée la base de données en fonction de ce que vous lui avez dit et il gère correctement tout cela et les variables
‫d'environnement.
‫Parce que si nous sauvegardons simplement pour dupliquer ceci et si nous sauvegardons dans la bibliothèque, vous savez que sur la
‫plupart de ces images officielles, vous aurez un tas de variables d’environnement et elles
‫sont toutes spécifiées ici.
‫Et toutes ces variables d'environnement sont utilisées dans ce script pour configurer préalablement ma suite.
‫Maintenant, dans le fichier lui-même, si vous voulez vraiment y plonger, il faut définir des variables d'environnement et trouver des fichiers
‫au cas où vous utiliseriez des informations secrètes très chaudes de Drucker, puis vous obtiendrez
‫toutes les données nécessaires à sa configuration.
‫Ensuite, ma suite l'a configurée, y compris en changeant le mot de passe root dans toutes les autres choses.
‫Ensuite, il ferme ma suite, puis termine le script, puis transmet cette exécution à ma suite pour qu'elle redémarre,
‫mais cette fois pour de bon.
‫Il s’agit donc essentiellement de commencer à faire certaines choses en empêchant les suites de démarrer une sauvegarde.
‫Et c'est ainsi que fonctionnent tous ces systèmes de stockage persistants à l'intérieur des conteneurs
‫officiels.
‫Donc pour vous La réponse longue à cette question est que vous allez l’utiliser dans votre propre script de
‫piégeage personnalisé. Peut-être copiez-vous le script par défaut s’il en existe un ou peut-être
‫en créez-vous vous-même, puis créez votre propre image cela créerait alors ce schéma initialement au premier démarrage.
‫Maintenant, une fois que vous craignez un schéma dans la base de données, vous savez que vous ne voulez pas vraiment
‫mettre à jour les schémas de cette façon, vous voudrez en créer d'autres.
‫En utilisant un autre utilitaire en dehors de ce droit de conteneur, vous exécuteriez vos commandes my cycle à
‫partir d'un autre conteneur, puis ils s'exécutaient sur le réseau, dans des conditions similaires.
‫Maintenant, vous n'avez plus du tout besoin de changer cela. Vous pouvez simplement le faire démarrer votre
‫Cassandra, puis ajouter le schéma à partir d'une télécommande d'un conteneur différent, mais vous devez contrôler cet ordre correctement.
‫Il faudrait attendre que Cassandra démarre.
‫Vous devriez avoir un autre conteneur qui a peut-être son propre script, puis ce script est
‫peut-être suffisamment intelligent pour continuer à vérifier si Cassandra est prête.
‫Et puis, quand il est prêt, lancez votre schéma, soit la mise à jour du schéma, soit l'installation initiale du schéma.
‫Essentiellement, vous pouvez le faire de cette façon et cela et beaucoup de cas est probablement la bonne façon de le faire,
‫mais surtout lorsque vous faites du développement local ou que vous voulez juste accélérer quelque chose de
‫petit et facile et que vous voulez juste construire un système de la première fois et que vous vouliez
‫le faire automatiquement, alors ce que vous feriez ici est que vous utiliseriez l’image par défaut officielle et que vous
‫ajoutiez votre propre schéma et fichier à celui de votre propre image personnalisée. première fois, il
‫ferait cela maintenant.
‫Voici le problème et vous devez faire attention à cela, ce script de point d'entrée s'exécute chaque fois que le conteneur commence au moins à partir
‫de cette image directement à partir de cette image que vous aviez créée pour celle personnalisée.
‫Vous voulez donc vous assurer que votre script est suffisamment intelligent pour ne pas réexécuter le schéma encore et encore
‫sur une base de données d'annonces, il en possède déjà le schéma.
‫Vous devez donc vous appuyer sur cette intelligence et c'est pourquoi parfois, en fonction de votre modèle, vous envisagez de mettre à jour
‫régulièrement des éléments ou si vous déplacez constamment des bases de données dans un cluster Swarm ou un cluster
‫d'idées cubaines, puis effectuez cette opération à l'intérieur du conteneur de base de données lui-même. peut ne pas être la bonne stratégie
‫pour vous mais cette option existe.
‫Alors vérifiez-le.
‫Et cela ressemble aux notes de Cliff sur ce qu'il faut faire avec les points d'entrée qui n'étaient pas dans mon cours d'origine, donc
‫je pourrais probablement dire que cette vidéo est là et qu'il y a au moins du matériel supplémentaire pour le moment,
‫c'est mieux que de ne rien avoir.