Docker composer comment monter le chemin de l'un à l'autre récipient?
J'ai nignx container
et un asset container
qui ont tous mes biens construire à partir de grunt ou certains autres outils.
Maintenant dans le panneau de composer fichier, je veux le monter asset container's
'chemin d'accès au dossier dans nginx container
donc nginx peut servir que les fichiers.
- Comment pouvons-nous faire? je ne me souviens pas, mais je pense qu'il y a une option où l'on peut partager le chemin d'un conteneur à un autre.
- Suppose que si je l'échelle de nginx pour 2 conteneurs alors que le montage fonctionne pour toutes les instance de nginx?
- si je l'échelle
asset container
alors ce qui va arriver? - je tiens également à monter avec mon hôte, de sorte que le développement peut être fait facilement.
OriginalL'auteur dev.meghraj | 2017-04-22
Vous devez vous connecter pour publier un commentaire.
Ce que vous voulez faire est d'utiliser un volume, puis montez le volume en ce que les conteneurs que vous voulez qu'il apparaisse dans.
Complètement dans le Panneau
Vous pouvez le faire entièrement à l'intérieur de Docker.
Voici un exemple (stripped-down - votre fichier réel serait beaucoup plus que ça, bien sûr).
En bas, un seul volume défini, nommé "asset-volume".
Puis dans chacun de vos services, vous dites Docker pour monter le volume à un certain chemin. Je montre l'exemple des chemins à l'intérieur du conteneur, il suffit de régler ces quelque soit le chemin que vous voulez être dans le conteneur.
Le volume est une entité indépendante et n'appartient à aucun conteneur particulier. Il est juste monté en chacun d'eux, et qui est partagé. Si un conteneur modifie le contenu, puis ils ont tous de voir les modifications.
Notez que si vous préférez un seul peut apporter des modifications, vous pouvez toujours monter le volume en lecture seule dans certains services, en ajoutant
:ro
à la fin de la chaîne du volume.À l'aide d'un répertoire de l'hôte
Alternativement, vous pouvez utiliser un répertoire sur l'ordinateur hôte et la monter dans les conteneurs. Ceci a l'avantage de vous être en mesure de travailler directement sur les fichiers à l'aide de vos outils à l'extérieur de Docker (telles que votre interface graphique de l'éditeur de texte et d'autres outils).
C'est la même chose, sauf que ce n'est pas de définir un volume dans le Panneau, au lieu de montage le répertoire externe.
Dans cet exemple, le répertoire local "actifs" est monté dans deux récipients à l'aide du chemin d'accès relatif
./assets
.En utilisant à la fois en fonction de l'environnement
Vous pouvez également le configurer pour un autre dev et l'environnement de production. Mettre le tout dans le menu fixe-composer.yml sauf le volume monte. Ensuite, faire deux autres fichiers.
Dans ces fichiers ne mettre que le minimum de configuration pour définir le montage de volume. Nous allons mélanger cela avec le docker-composer.yml pour obtenir une dernière config.
Ensuite utiliser cette. Il va utiliser la config de docker-composer.yml, et d'utiliser quoi que ce soit dans le deuxième fichier en tant que remplacement ou supplémentaires config.
Et pour la production, il suffit d'utiliser la prod fichier au lieu de le dev de fichier.
L'idée ici est de garder la plupart de la configuration dans le panneau-composer.yml, et que le minimum de différences dans l'alternative de fichiers.
Exemple:
docker-composer.prod.yml
docker-composer.dev.yml
Voir mise à jour de réponse. J'ai ajouté un exemple de l'utilisation d'un répertoire externe au lieu d'un menu fixe en volume.
Je ne peux pas utiliser les deux en même temps
Signifie que le volume de la synchronisation avec l'ordinateur hôte (par dev env)
Je ne suis pas sûr de ce que tu veux dire. Oui vous pouvez, mais une seule chose peut être monté à un chemin spécifique à un moment. Donc, si vous utilisez à la fois qu'ils seraient à des chemins différents.
OriginalL'auteur Dan Lowe