Доступ к базе данных вне среды докера - PullRequest
0 голосов
/ 24 августа 2018

Я создал микросервисную среду, точнее 5 сервисов, где они связаны друг с другом и имеют доступ к одной базе данных (PostgreSQL).После разработки я начал создавать образы докеров для сервисов.Все образы созданы, однако я не могу поместить postgreSQL в среду докера, так как он уже запущен на машине в localhost, и другие приложения зависят от него, поэтому я не могу перейти в среду докера.Я хотел бы знать, возможно ли для моих приложений доступ к базе данных, находящейся вне среды?

Ниже мой 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    

В ссылке процитировал, его проблема заключалась в том, что postgres не принимал связи извне.У меня проблема с самого начала, с чего начать настройку соединения?

1 Ответ

0 голосов
/ 24 августа 2018

Вы можете указать extra_hosts в формате compose и передать IP-адрес своего хоста в качестве переменной среды.

extra_hosts:
       - "my_host:${HOST_IP}"

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

...