Plusieurs FROMs - ce que cela signifie
Je veux construire un menu fixe de l'image pour la Linkurious projet sur github, ce qui nécessite à la fois la base de données Neo4j, et Node.js pour l'exécuter.
ma première approche a été de déclarer une image de base pour mon image, contenant Neo4j. La référence docs ne définit pas le terme "d'image de base" de toute façon utile:
Image de Base:
Une image qui n'a pas de parent est une image de base
à partir de laquelle j'ai lu que je ne peut avoir une image de base si cette image n'a pas d'image de base lui-même.
mais qu'est ce qu'une image de base? ça veut dire que si je déclare neo4j/neo4j dans un DE la directive, que lorsque mon image est exécutée, le néo base de données s'exécute automatiquement et être disponible à l'intérieur du conteneur sur le port 7474?
la lecture du menu fixe de référence (voir: https://docs.docker.com/reference/builder/#from) je vois:
DE peuvent apparaître plusieurs fois dans un seul Dockerfile afin de créer plusieurs images. Il suffit de présenter une note de la dernière ID de l'image de sortie par la validation avant chaque nouvelle DE la commande.
je veux créer plusieurs images? il semblerait que je veux, c'est avoir une image unique qui contient le contenu d'autres images, par exemple, neo4j et node.js
J'ai trouvé aucune directive de déclarer des dépendances dans le manuel de référence. il n'y a pas de dépendances comme en TR /min où pour exécuter mon image le contexte de l'appel doit d'abord installer les images dont il a besoin?
Je suis confus...
- Remarque: en Mai 2017, vous avez maintenant plusieurs
FROM
dans unDockerfile
. Voir mon édité réponse ci-dessous.
Vous devez vous connecter pour publier un commentaire.
Un ensemble de fichiers, plus
EXPOSER
'd ports,point d'entrée
etCMD
.Vous pouvez ajouter des fichiers et de construire une nouvelle image à partir de cette image de base, avec un nouveau
Dockerfile
de départ avec unFROM
directive: l'image mentionné aprèsFROM
est "l'image de base" pour votre nouvelle image.Seulement si vous n'écrasez pas
CMD
etENTRYPOINT
.Mais l'image en elle-même est assez: vous devez utiliser une
FROM neo4j/neo4j
si vous deviez ajouter les fichiers liés àneo4j
pour votre utilisation particulière deneo4j
.Ne pas: il y a une proposition visant à supprimer cette "fonctionnalité" de toute façon (question 13026)Question 14412 mentionne:
Mise à jour en Mai 2017 (18 mois plus tard), avec docker (moby) 17.05-ce.
Plusieurs DE peut être utilisés dans un Dockerfile.
Voir "Générateur de modèle et plusieurs stade, construit dans le Panneau" (par Alex Ellis) et PR 31257 par Tġnis Tiigi.
Avant:
Après:
Première partie de la Dockerfile:
Deuxième partie de la même(!) Dockerfile:
Serait le résultat de deux images, l'une pour le bâtiment, l'une avec seulement l'application (beaucoup, beaucoup plus petit)