Lancez une application Rails distincte avec docker-compose. Ici, seuls les paramètres de docker-compose sont écrits.
Je souhaite effectuer une communication API entre les applications Rails lancées localement avec différents docker-composes. Par exemple, je veux accéder à l'API Rails App2 du diagramme d'image de Rails App1
Je vais le laisser pour que vous puissiez accéder à ce mémo à partir des mots-clés.
Errno::ECONNREFUSED: Connection refused - connect(2)
--docker network create --driver bridge common_link
--docker network ls
(confirmez le réseau créé)
--Définir réseaux:
dans la hiérarchie des services de docker-compose.yml pour Rails App1 et Rails App2
docker-compose.yml
services:
.
.
networks:
common_link:
external: true
--Définissez les réseaux
dans chaque paramètre de conteneur de Rails App1, DB1, Rails App2, DB2
services:
rails_app1:
networks:
- common_link
db1:
networks:
- common_link
--Modifié docker-compose.yml pour éviter de chevaucher le port MySQL de docker-compose2 avec 3306
services:
db2:
ports:
- "127.0.0.1:3307:3307"
services:
rails_app2:
environment:
DATABASE_URL: mysql2://root:root@mysql:3307
--Spécifier le port dans la configuration MySQL de docker-compose2 e.g. /Dockerfiles/mysql/conf.d/mysql.cnf
[client]
port=3307
[mysqld]
port=3307
--Démarrez à la fois docker-compose1 et docker-compose2
--docker network inspect common_link
(Confirmation qu'un total de 4 conteneurs, Rails App1, DB1, Rails App2, DB2, appartiennent au même réseau)
par exemple "Conteneurs"
ping 172.19.0.5
# Si l'adresse IP (172.19.0.5) confirmée dans l'image temporaire ci-dessus est définie sur rails_app2curl 172.19.0.5
Veuillez me faire savoir s'il existe d'autres bons paramètres.
https://qiita.com/reneice/items/20e981062b093264cd0a