Ich möchte die API mit Rails auf mehreren lokal eingerichteten Docker-Composes treffen

Abschlussbilddiagramm

image.png

Annahme

Starten Sie eine separate Rails-App mit Docker-Compose. Hier werden nur die Einstellungen in Docker-Compose geschrieben.

Was willst du tun

Ich möchte eine API-Kommunikation zwischen Rails-Apps durchführen, die lokal mit verschiedenen Docker-Kompositionen gestartet wurden. Beispielsweise möchte ich die Rails App2-API des Bilddiagramms von Rails App1 aus aufrufen

Fehler beim Versuch zu kommunizieren, ohne etwas zu tun

Ich lasse es, damit Sie über die Schlüsselwörter zu diesem Memo gelangen können.

Errno::ECONNREFUSED: Connection refused - connect(2)

Überblick

  1. Erstellen Sie ein gemeinsames Netzwerk
  2. Allgemeine Netzwerkeinstellungen für Dienste in jeder docker-compose.yml
  3. Überprüfen Sie, ob die Anfrage eintrifft
  4. Fertigstellung

Verfahren

--docker network create --driver bridge common_link --docker network ls (bestätige das erstellte Netzwerk)

docker-compose.yml

services:
.
.
networks:
  common_link:
    external: true
services:
  rails_app1:
    networks:
      - common_link
  db1:
    networks:
      - common_link
services:
  db2:
    ports:
      - "127.0.0.1:3307:3307"
services:
  rails_app2:
    environment:
      DATABASE_URL: mysql2://root:root@mysql:3307
[client]
port=3307
[mysqld]
port=3307

--Starten Sie sowohl Docker-Compose1 als auch Docker-Compose2 --docker network inspect common_link (Bestätigung, dass insgesamt 4 Container, Rails App1, DB1, Rails App2, DB2, zum selben Netzwerk gehören)

z.B. "Behälter" image (8) (1).png

  1. docker-compose exec rails_app1 bash
  2. ping 172.19.0.5 # Wenn die im obigen temporären Image bestätigte IP (172.19.0.5) auf rails_app2 gesetzt ist
  3. curl 172.19.0.5

Bitte lassen Sie mich wissen, wenn es andere gute Einstellungen gibt.

Referenz

https://qiita.com/reneice/items/20e981062b093264cd0a

Recommended Posts

Ich möchte die API mit Rails auf mehreren lokal eingerichteten Docker-Composes treffen
Implementierung einer starken API für "Ich möchte ~~ auf dem Bildschirm anzeigen" mit einfachem CQRS
Ich möchte eine Browsing-Funktion mit Ruby on Rails hinzufügen
Ich möchte ein Komitee mit Rails vorstellen, ohne zu schmutzig zu werden
Ich möchte mit Firestore von Rails spielen
[Rails] Ich möchte CSS mit Webpacker laden
Ich möchte eine Datei mit Ruby im Internet herunterladen und lokal speichern (mit Vorsicht).
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte Benutzer mit Devise + OmniAuth bei Rails authentifizieren
Ich möchte die Protokollausgabe unter Android vereinfachen
[Rails] [Bootstrap] Ich möchte die Schriftgröße entsprechend ändern
Ich möchte eine mit Rails 6 erstellte App an GitHub senden
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Was ich mit der Redmine REST API süchtig gemacht habe
Ich möchte das JDK auf meinem Mac-PC installieren
Ich möchte mehrere Rückgabewerte für das eingegebene Argument zurückgeben
Ich möchte den Startbefehl mit Docker-Compose an Postgres übergeben.
Nachdem ich einen Artikel mit Rails Simple Calendar veröffentlicht habe, möchte ich ihn im Kalender wiedergeben.
Ich möchte mit Kotlin und Java zum vorherigen Bildschirm zurückkehren!
Ich habe versucht, die Bildvorschau mit Rails / jQuery zu implementieren
Ich möchte die deaktivierte Option abhängig von der Bedingung zu f.radio_button hinzufügen
[Java] Ich möchte mit dem Schlüssel im Objekt eindeutig arbeiten
[Rails] Ich möchte beim Übergang mit link_to Daten zu Params hinzufügen
Rails-API-Modus Ich habe versucht, die Mehrfachsuchfunktion für Schlüsselwörter mithilfe von Arrays und iterativer Verarbeitung zu implementieren.
Memorandum: Wovon ich süchtig war, als ich auf die Accounting Freee API traf
Ich möchte im Dialogfeld mehrere Elemente mit einem benutzerdefinierten Layout auswählen
Minimale Schritte zum Einrichten einer Ruby-Umgebung mit rbenv unter Ubuntu 20.04
Ich kann nicht bauen, wenn ich das Build-Ziel mit XCode12 auf einen Simulator setze!
Ich möchte DBViewer mit Eclipse 2018-12 verwenden! !!
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich habe versucht, die Stream-API zusammenzufassen
Richten Sie die Docker-Registrierung lokal unter CentOS 7 ein
[Rails / ActiveRecord] Ich möchte den Wert überprüfen, bevor der Typ konvertiert wird (_before_type_cast).
Ich möchte in der Lage sein, Dateien mit refile mit administrate [rails6] zu lesen.
[Schienen] So registrieren Sie mehrere Datensätze in der Zwischentabelle mit einer Zuordnung von vielen zu vielen
Entwicklungsnotiz ~ Ich möchte nur das erste Bild anzeigen, das mehrmals gepostet wurde ~
Rails6 Ich möchte ein Array von Werten mit einem Kontrollkästchen erstellen
[Eclipse] Ich möchte die Abschlussfunktion verwenden, aber ich möchte es schaffen, den Abschluss mit einem Leerzeichen zu bestätigen
[Rails] Ich möchte mit RSpec testen. Wir unterstützen Ihren Schritt [Einführungsverfahren]
Zuordnung zu mehreren Variablen mit dem ternären Operator
Ich habe versucht, die Sitzung in Rails zu organisieren
Veröffentlichen Sie die mit Ruby on Rails erstellte App
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte den Inhalt der Absicht var_dump