生产环境中的Docker容器端点名称

时间:2020-05-03 15:36:42

标签: angular spring-boot docker google-cloud-platform docker-compose

我正在开发微服务应用程序,并使用docker-compose进行编排。 我有一个角度应用程序,并使用Spring Boot开发了2个微服务。 在我的localhost环境中,我已经成功地在容器之间通信并发送了请求,但是当我尝试在google shell实例中运行docker-compose文件时,对后端的请求失败。

角度项目中的端点具有此模式

http://localhost:8090/**

我还尝试使用在docker-compose中定义为

的容器名称
searchservice:8080/**

但它也不起作用。

这是我的docker-compose配置

version: '3.5'
services:



  searchservice:
    hostname: searchservice
    image: ayoubdali/searchservice:0.0.3-SNAPSHOT
    container_name: searchservice
    networks:
      - es-network
          #ipv4_address: 172.21.0.12
    ports:
      - 8080:8080
    restart: always
    depends_on:
      - elasticsearch


  subscriber-service:
    hostname: subscriber-service
    image: ayoubdali/subscriberservice:0.0.4-SNAPSHOT
    container_name: subscriber-service
    networks:
      - es-network 
          #ipv4_address: 172.21.0.13
    ports:
      - 8090:8090
    restart: always
    depends_on:
      - mongo1
      - mongo2

  searchappfront:
    hostname: searchappfront
    image: frontservice:0.5.0
    container_name: searchappfront
    networks:
      - es-network
    ports:
      - 4200:80
    restart: always
    depends_on:
      - subscriber-service
      - searchservice

  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:6.8.6
    hostname: elasticsearch
    container_name: elasticsearch
    ports:
      - 9200:9200
    networks:
      - es-network  
  mongo1:
    hostname: mongo1
    image: mongo
    container_name: mongo1
    networks:
      - es-network
    ports:
      - 27018:27017
    restart: always
    entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ]

networks:
  es-network:
    attachable: true

1 个答案:

答案 0 :(得分:0)

如果我对您的理解正确,那么问题是在本地环境中,您的Angular容器(前端)在GCP实例的端口8080上无法访问searchservice

由于显示的错误与使用EndPoint Url中的主机名时的DNS有关,因此请确保一切都在DNS方面正常工作,并且当您对该主机名发出dns请求时,它可以解决该问题。此外,此部署中没有其他GCP服务或产品(例如Cloud DNS)