【问题标题】:Access database that is outside the docker environment访问 docker 环境之外的数据库
【发布时间】:2019-01-31 07:52:46
【问题描述】:

我创建了一个微服务环境,更准确地说是 5 个服务,它们相互连接并访问同一个数据库 (PostgreSQL)。开发完成后,我开始为服务创建 docker 镜像。所有镜像都创建好了,但是我不能把postgreSQL放到docker环境中,因为它已经在localhost的机器上运行了,其他应用程序都依赖它,所以我不能迁移到docker环境。我想知道我的应用程序是否可以访问环境之外的数据库?

下面是我的 docker-compose

version: '2'
services:
    server:
        image: microservices/server:latest
        mem_limit: 1073741824 # RAM 1GB
        environment:
          - SPRING_PROFILES_ACTIVE=docker
        expose:
          - "8080"
        ports:
          - "8080:8080"
        networks:
          - microservices
    security-server:
        image: microservices/security-server:latest
        mem_limit: 1073741824 # RAM 1GB
        environment:
          - SPRING_PROFILES_ACTIVE=docker
        depends_on:
          - server
        expose:
          - "8081"
        ports:
          - "8081:8081"
        networks:
          - microservices
        restart: "always"
    api-gateway:
        image: microservices/api-gateway:latest
        mem_limit: 1073741824 # RAM 1GB
        environment:
          - SPRING_PROFILES_ACTIVE=docker
        depends_on:
          - server
          - security-server          
        expose:
          - "9999"
        ports:
          - "9999:9999"
        networks:
          - microservices
        restart: "always"         
    imovel:
        image: microservices/imovel:latest
        mem_limit: 1073741824 # RAM 1GB
        environment:
          - SPRING_PROFILES_ACTIVE=docker
        depends_on:
          - server
          - security-server
          - api-gateway        
        expose:
          - "8082"
        ports:
          - "8082:8082"
        networks:
          - microservices          
        restart: "always" 
    imovel2:
        image: microservices/imovel:latest
        mem_limit: 1073741824 # RAM 1GB
        environment:
          - SPRING_PROFILES_ACTIVE=docker
        depends_on:
          - server
          - security-server
          - api-gateway         
        expose:
          - "9098"
        ports:
          - "9098:9098"
        networks:
          - microservices          
        restart: "always"           
    cliente:
        image: microservices/cliente:latest
        mem_limit: 1073741824 # RAM 1GB
        environment:
          - SPRING_PROFILES_ACTIVE=docker
        depends_on:
          - server
          - security-server
          - api-gateway          
        expose:
          - "8083"
        ports:
          - "8083:8083"
        networks:
          - microservices
        restart: "always"            
networks:
  microservices:
    driver: bridge    

在引用的link 中,他的问题是postgres 不接受来自外部的连接。我的问题更多的是开始,我应该从哪里开始配置连接?

【问题讨论】:

标签: java docker docker-compose microservices


【解决方案1】:

您可以在撰写格式中指定extra_hosts,并将您的主机IP地址作为环境变量传入。

extra_hosts:
       - "my_host:${HOST_IP}"

https://docs.docker.com/compose/compose-file/#extra_hosts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 2014-09-28
    相关资源
    最近更新 更多