Je suis nouveau bébé au docker. J'utilise Docker dans l'application de démarrage à ressort. Ci-dessous mon fichier.
Application.Properties Fichier: P>
[ { "Id": "7664bab5ed452e3e2243e1802010240ab5a3eb817af6164e985b10e729ff4c8f", "Created": "2020-02-04T17:30:08.5351511Z", "Path": "java", "Args": [ "-jar", "app.jar", "--spring.profiles.active=docker" ], "State": { "Status": "running" ....................... "PortBindings": { "8080/tcp": [ { "HostIp": "", "HostPort": "8080" } ] },
4 Réponses :
Vous devez mentionner le nom de service ici comme dans votre cas, le nom de service DB est mysqldb strong>. Vous trouverez ci-dessous l'application mise à jour.properties
Obtenir la même erreur lors de l'exécution de l'application de démarrage Spring: causée par: java.net.unknownhostexception: $ (db_host: mysqldb)
Essayez ceci:
Remplacer et mettez à jour votre Application.Properties Fichier: P> db_host = 192.168.0.7 code> à
db_host = mysqldb code> dans votre fichier docker-composez. p>
spring.datasource.url=jdbc:mysql://$(mysqlDb):3306/springdemo?allowPublicKeyRetrieval=true&useSSL=true
Même erreur que je reçois, j'ai mis à jour le code aussi et apporté des changements en fonction de votre part, mais je reçois toujours ce message: causé par: java.net.unknownhostexception: $ {mysqldb}
Juste une petite question, êtes-vous sûr de ce paramètre db_host? Vous essayez de donner une adresse IP statique, mais selon la documentation: Par défaut Compose définit un réseau unique pour votre application. Chaque conteneur pour un service rejoint le réseau par défaut et est à la fois accessible par d'autres conteneurs sur ce réseau et découvrez-les à un nom d'hôte identique au nom du conteneur.
Plus tôt c'est db_host, j'ai mis à jour mon code. Cela fait maintenant référence à base de données_host. Mais rien ne va dans mon chemin, même erreur
Comme exemple permet de prendre ce scénario pour une application Web et un postgrees: Version: "3" Services: Web: Construire :. Ports: - "8000: 8000" DB: Image: Ports de Postgres: - "8001: 5432" Chaque conteneur peut désormais rechercher le nom de nom d'hôte ou dB et récupérer l'adresse IP du conteneur approprié. Par exemple, le code d'application Web pourrait se connecter à l'URL Postgres: // dB: 5432 et commencez à utiliser la base de données Postgres.a simple comme tessant de mettre en œuvre comme ceci, j'espère que vous obtiendrez votre solution.
Je veux savoir que, en cours d'exécution, le Docker-Compose viendra plus tard, il faut d'abord exécuter l'application Springboot pour créer un pot, après avoir créé un pot, je peux créer une image, puis je mets cette image sur Docker HUB alors seulement je ne peux que courez mon docker-composition, non? . Mais ma 1ère étape ne fait que défaut. Je suis incapable de créer un pot
Merci tout le monde: j'ai eu la solution par Hit and Trail: p
Bien qu'il fonctionnait, mais vous voyez ici que vous utilisiez db_host plus tôt, vous utilisez maintenant based_host = mysqldb, qui pointe actuellement votre nom de service MySQL. Ce nom de service peut être découvert dans le réseau unique créé par Docker Compose. Vous étiez le code papier db_host = 192.168.0.1 et essayez de vous connecter à l'aide de cette adresse IP, qui n'est pas valide car Docker compose crée son réseau. P>
Merci pour votre temps . Je peux écrire celui-ci à Docker-compose, - base de données_host = 192.168.0.1 Droite? Je suis nouveau à cela, si vous me guidez, c'est bien ou mal
Si vous souhaitez affecter une adresse IP spécifique, vous devez créer un réseau, puis attribuer des conteneurs à ce réseau avec une adresse IP spécifique dans votre CIDD. Je modifie ma réponse pour votre fichier Docker-compose de référence, comme dans le commentaire, je ne peux pas coller le fichier YAML.
Je ne suis pas capable de coller Docker-compose.yaml au format YAML. Vous pouvez vous référer au lien ci-dessous pour votre fichier Docker-compose forums.docker.com/t/...
Je cours mon docker-compose localement sur mon terminal, je peux voir que mon conteneur est en marche mais je ne parviens pas à courir mon API. Il ne se connecte pas à localhost / 8080 .J'ai inspecté le conteneur également, vous pouvez voir mon code mis à jour ci-dessus
Essayez d'exécuter cette courrle localhost: 8080 / Dockeex dans votre conteneur et voir la réponse