로컬로 세워진 여러 docker-compose의 Rails에서 API를 두드리고 싶습니다.
3799 단어 docker-compose도커Rails
완성 이미지도
전제
docker-compose에서 별도의 Rails App을 시작하십시오.
여기에서는 docker-compose에서 설정만 씁니다.
※ 네트워크 등의 설정치는 참조처에 있는 기사를 참고로 하고 있습니다
※DB = MySQL
하고 싶은 것
로컬에서 별도의 docker-compose에서 시작한 Rails App간에 API 통신을 하고 싶다.
e.g. 이미지 다이어그램의 Rails App2 API를 Rails App1에서 두드리고 싶습니다.
아무 것도하지 않고 통신을 시도 할 때의 오류
키워드에서 이 메모에 도착할 수 있도록 남겨 둡니다.
Errno::ECONNREFUSED: Connection refused - connect(2)
개요
절차
docker network create --driver bridge common_link
(공통 네트워크 생성) docker network ls
(생성 된 네트워크 확인) networks:
를 정의 docker-compose.yml
services:
.
.
networks:
common_link:
external: true
networks
를 정의 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
e.g./Dockerfiles/mysql/conf.d/mysql.cnf
[client]
port=3307
[mysqld]
port=3307
docker network inspect common_link
(Rails App1, DB1, Rails App2, DB2의 총 4 개의 컨테이너가 동일한 네트워크에 속하는지 확인) e.g.
Containers
문제가 없다면 ping, curl, API를 치십시오.
ping 172.19.0.5
# 위의 임시 이미지에서 확인한 IP (172.19.0.5)를 rails_app2로 설정하면 curl 172.19.0.5
다른 좋은 설정이 있으면 알려주세요.
참조처
Reference
이 문제에 관하여(로컬로 세워진 여러 docker-compose의 Rails에서 API를 두드리고 싶습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Goi350ml/items/deaaf04deea66bfa53b4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)