Je déploie une petite pile sur un UCP
L'un des problèmes auxquels je suis confronté est le nommage du conteneur pour service1.
J'ai besoin d'un nom statique pour le conteneur, car il est utilisé par mycustomimageforservice2
L'option nom_conteneurest ignorée lors du déploiement d'une pile en mode swarm avec un fichier Compose (version 3).
Je dois utiliser version: 3 composer des fichiers.
version: "3"
services:
service1:
image: dockerhub/service1
ports:
- "8080:8080"
container_name: service1container
networks:
- mynet
service2:
image: myrepo/mycustomimageforservice2
networks:
- mynet
restart: on-failure
networks:
mynet:
Quelles sont mes options?
Vous ne pouvez pas forcer un conteneurName dans une composition telle qu'elle est conçue pour permettre des tâches telles que la mise à l'échelle d'un service (en mettant à jour le nombre de réplicas) et qui ne fonctionneraient pas avec des noms. Un service peut accéder à l'autre en utilisant servicename ( http: // serviceName: internalServicePort ) et docker fera le reste à votre place (résolution, par exemple, en une adresse de conteneur réelle, équilibrage de la charge entre les réplicas, etc.).
Cela fonctionne avec le type de réseau par défaut qui est superposé
Vous pouvez faire face à votre problème de liaison des services dans le fichier docker-compose.yml. Quelque chose comme:
version: "3"
services:
service1:
image: dockerhub/service1
ports:
- "8080:8080"
networks:
- mynet
service2:
image: myrepo/mycustomimageforservice2
networks:
- mynet
restart: on-failure
links:
- service1
networks:
mynet:
En utilisant des arguments de liens dans votre fichier docker-compose.yml, vous autoriserez un service à en accéder à un autre à l'aide du nom du conteneur. Dans ce cas, service2 établirait une connexion à service1 grâce au paramètre links. Je ne suis pas sûr de savoir pourquoi vous utilisez un réseau mais avec le paramètre links ne serait pas nécessaire.
Si vous devez utiliser la version 3 mais que vous ne travaillez pas avec swarms, vous pouvez ajouter --compatibility à vos commandes.