0

我可以直接从本地计算机连接到扳手模拟器,但是在尝试从 docker 容器连接到它时遇到问题。

我的撰写文件中有以下两项服务:

version: '3.7'

services:
  serviceA:
    image: "test
    depends_on:
      - spanner-emulator
    environment:
      SPANNER_EMULATOR_HOST: localhost:9010

  spanner-emulator:
    image: spanner_image
    ports:
      - 9010:9010
      - 9020:9020
      - 9515:9515

当我启动 serviceA 时,我可以gcloud在我的本地扳手模拟器上运行查询。但是当我尝试从 serviceA 容器中运行命令时,我得到last exception: 503 failed to connect to all addresses.

我试图运行的命令(直接在我机器上的容器之外工作)

spanner_client = spanner.Client(project="my-proj")
instance = spanner_client.instance("Emulator")
database = instance.database("my-db")
with database.snapshot() as snapshot:
   results = snapshot.execute_sql("SELECT Name, Version FROM test1")
   for row in results:
      print(u"Name: {}, Version: {}".format(*row))

帮助表示赞赏!

4

1 回答 1

0

愚蠢的错误。当我更改为时,我能够从 docker 容器连接到SPANNER_EMULATOR_HOST模拟器spanner-emulator:9010

于 2021-03-25T13:13:07.790 回答