Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 从docker compose启动的容器无法连接到其他容器_Postgresql_Docker_Docker Compose_Rabbitmq - Fatal编程技术网

Postgresql 从docker compose启动的容器无法连接到其他容器

Postgresql 从docker compose启动的容器无法连接到其他容器,postgresql,docker,docker-compose,rabbitmq,Postgresql,Docker,Docker Compose,Rabbitmq,我有一个像这样的docker compose version: '3.7' networks: iam_network: external: name: foundation_iam rdc_network: name: rdcstu3_net services: rdcdeploy: restart: "no" container_name: rdcdeploy build: context: ./rdcdeploy

我有一个像这样的
docker compose

version: '3.7'
networks:
iam_network:
    external:
    name: foundation_iam
rdc_network:
    name: rdcstu3_net
services:
rdcdeploy:
    restart: "no"
    container_name: rdcdeploy
    build:
    context: ./rdcdeploy
    args: 
        - build_version
        - build_type
    image: rdcdeploy:$build_version
    volumes:
    - ./cfg:/cfg
    networks:
    - rdc_network
rdcrabbitmq:
    restart: "no"
    container_name: rdcrabbitmq
    build:
    context: ./rabbitmq
    args: 
        - build_version
        - build_type
    image: rdcrabbitmq:$build_version
    ports:
    - "5772:5672"
    - "15772:15672"
    depends_on: 
    - rdcdeploy
    volumes:
    - ./cfg:/cfg
    networks:
    - rdc_network
rdcdb:
    restart: "no"
    container_name: rdcdb
    build: 
    context: ./postgres
    args: 
        - build_version
        - build_type
    image: rdcpostgres:$build_version
    ports:
    - "5532:5432"
    depends_on: 
    - rdcdeploy
    volumes: 
    - ./cfg:/cfg
    networks:
    - rdc_network
rdcdbdeploy:
    restart: "no"
    container_name: rdcdbdeploy
    build: 
    context: ./rdcdbdeploy
    args: 
        - build_version
        - build_type
    image: rdcdbdeploy:$build_version
    depends_on:
    - rdcdb
    volumes: 
    - ./cfg:/cfg
    networks:
    - rdc_network
rihapp:
    restart: "no"
    container_name: rihapp
    build: 
    context: ./rihserver
    args: 
        - build_version
        - build_type
    image: rihapp:$build_version
    ports:
    - "9090:8080"
    depends_on:
    - rdcrabbitmq
    - rdcdb
    volumes: 
    - ./cfg:/cfg
    networks:
    - iam_network
    - rdc_network
subscription_scheduler:
    restart: "no"
    container_name: subscription_scheduler
    build: 
    context: ./subscription
    args: 
        - build_version
        - build_type
    image: subscription_scheduler:$build_version
    depends_on:
    - rdcrabbitmq
    - rdcdb
    - rihapp
    volumes: 
    - ./cfg:/cfg
    networks:
    - iam_network
    - rdc_network
    environment:
    - rdc.subscription.instanceNumber=0
subscription_processor:
    restart: "no"
    container_name: subscription_processor
    build: 
    context: ./subscription
    args: 
        - build_version
        - build_type
    image: subscription_processor:$build_version
    depends_on:
    - rdcrabbitmq
    - rdcdb
    - rihapp
    volumes: 
    - ./cfg:/cfg
    networks:
    - iam_network
    - rdc_network
    environment:
    - rdc.subscription.instanceNumber=1
rdcsmoketest:
    restart: "no"
    container_name: rdcsmoketests
    build:
    context: ./rdcdeploy
    image: rdcdeploy:$build_version
    volumes:
    - ./cfg:/cfg
    depends_on: 
    - rihapp
    networks:
    - iam_network
    - rdc_network
    entrypoint:
    - wait-for-rihapp.sh
    - rdcdeploy
    command: ["-x", "-z", "/cfg", "-c", "/cfg/config.yml", "docker"]
我使用docker compose up启动它,它显示容器已启动

eedaa5e11a0e        rdicdeploy:3.3.0.1                "wait-for-rihapp.sh…"   2 minutes ago       Up 38 seconds                                                                                                    rdicsmoketests
9178355cbca7        subscription_scheduler:3.3.0.1   "./wait-for-env.sh /…"   2 minutes ago       Up 38 seconds                                                                                                    subscription_scheduler
ae24a4b76f3e        subscription_processor:3.3.0.1   "./wait-for-env.sh /…"   2 minutes ago       Up 38 seconds                                                                                                    subscription_processor
5f789ae74ef2        rihapp:3.3.0.1                  "./wait_for_rdic_db.s…"   2 minutes ago       Up 39 seconds       0.0.0.0:9090->8080/tcp                                                                       rihapp
698b26d0ca37        rdicdbdeploy:3.3.0.1              "wait-for-env-db.sh …"   2 minutes ago       Up 39 seconds                                                                                                    rdicdbdeploy
592cb850f5b9        rdicrabbitmq:3.3.0.1              "wait-for-env.sh /cf…"   2 minutes ago       Up 39 seconds       4369/tcp, 5671/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:5772->5672/tcp, 0.0.0.0:15772->15672/tcp   rdicrabbitmq
505a0f36528f        rdicpostgres:3.3.0.1              "wait-for-env.sh /cf…"   2 minutes ago       Up 39 seconds       0.0.0.0:5532->5432/tcp   
但由于某些原因,没有容器能够连接rabbitmq或postgres

rabbitmq
的日志显示它们已启动

2020-07-24 10:32:13.226 [info] <0.370.0> Running boot step direct_client defined by app rabbit
2020-07-24 10:32:13.226 [info] <0.370.0> Running boot step os_signal_handler defined by app rabbit
2020-07-24 10:32:13.226 [info] <0.489.0> Swapping OS signal event handler (erl_signal_server) for our own
2020-07-24 10:32:13.262 [info] <0.539.0> Management plugin: HTTP (non-TLS) listener started on port 15672
2020-07-24 10:32:13.262 [info] <0.645.0> Statistics database started.
2020-07-24 10:32:13.262 [info] <0.644.0> Starting worker pool 'management_worker_pool' with 3 processes in it
2020-07-24 10:32:13.480 [info] <0.8.0> Server startup complete; 3 plugins started.
* rabbitmq_management
* rabbitmq_web_dispatch
* rabbitmq_management_agent
completed with 3 plugins.
但是应用程序正在尝试连接
5772
,但是rabbitmq和
postgres的连接被拒绝,这也表明

psql: error: could not connect to server: could not connect to server: Connection refused

rihapp                   |     Is the server running on host "localhost" (127.0.0.1) and accepting
rihapp                   |     TCP/IP connections on port 5532? 
它还生成
.env
文件,其中包含应用程序的环境变量,如

DATABASE_URL=postgres://rdc:rdc@localhost:5532/pg_db
spring.datasource.url=jdbc:postgresql://localhost:5532/pg_db
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5772

可能有什么问题?这感觉像是某种网络问题。

似乎您已将客户端配置为与
localhost:X
上的服务器联系,我是否正确


在这种情况下,您需要知道docker compose中的容器具有不同的网络cGroup,并且能够通过网桥接口相互连接。这意味着在容器中,您应该使用
rdcrabbitmq:5672
而不是
localhost:5772

似乎您已将客户端配置为与
localhost:X
上的服务器联系,我是否正确


在这种情况下,您需要知道docker compose中的容器具有不同的网络cGroup,并且能够通过网桥接口相互连接。这意味着在容器中,应该使用
rdcrabbitmq:5672
而不是
localhost:5772

是的,我将主机设置为localhost@lapots在这种情况下,容器中的客户端应该以服务的名义到达服务,例如
rdcrabbitmq:5672
rcdb:5432
所以我应该在docker compose中将它们设置为值o container\u name?我会使用它们的服务块的名称,并删除
container\u name:
选项。我应该使用什么端口?在
env
文件中,它使用
jdbc:postgresql://rdcdb:5532/pg_db
但仍然无法连接。虽然我可以使用
0.0.0.0:5532
Yes进行外部连接,但我将主机设置为localhost@lapots在这种情况下,容器中的客户端应该以服务的名义到达服务,例如
rdcrabbitmq:5672
rcdb:5432
所以我应该在docker compose中将它们设置为值o container\u name?我会使用它们的服务块的名称,并删除
container\u name:
选项。我应该使用什么端口?在
env
文件中,它使用
jdbc:postgresql://rdcdb:5532/pg_db
但仍然无法连接。虽然我能够使用Docker中的
0.0.0.0:5532
localhost
进行外部连接,但它几乎总是表示“这个容器”。描述网络环境以及如何在容器之间连接。
localhost
在Docker中几乎总是指“此容器”。描述网络环境以及如何在容器之间连接。
DATABASE_URL=postgres://rdc:rdc@localhost:5532/pg_db
spring.datasource.url=jdbc:postgresql://localhost:5532/pg_db
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5772