Google 无法在内部连接数据存储 Docker
Google Datastore unable to connect inside Docker
我有一个 Docker Compose 文件,其中 运行 是 Google 数据存储模拟器:
https://cloud.google.com/datastore/docs/tools/datastore-emulator
version: '3'
services:
database:
image: google/cloud-sdk
command: gcloud beta emulators datastore start --host-port 0.0.0.0:8000 --project emulator --store-on-disk
ports:
- 8000:8000
backend:
build: ./backend
command: npm run start:dev
ports:
- 8080:8080
environment:
DATASTORE_EMULATOR_HOST: backend:8000
DATASTORE_PROJECT_ID: emulator
volumes:
- ./backend:/usr/src/app:rw
- /usr/src/app/node_modules
我有一个遵循 NodeJS 数据存储示例的 NodeJS 后端:
https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/master/appengine/datastore/app.js
const Datastore = require('@google-cloud/datastore');
const datastore = Datastore();
const query = datastore.createQuery('visit');
datastore.runQuery(query);
当我 运行 脚本在本地运行时:
npm start
然而,当我 运行 和 Docker Compose NodeJS 示例挂起时,没有显示任何错误消息:
docker-compose up
在这两个示例中,我都可以通过访问看到 'Ok' 消息:
http://localhost:8000
所以我知道数据存储实例 运行ning 是正确的。但是当我在以下位置获得端点时它挂起:
为什么挂了?它是否正在尝试连接到实时项目?我想 运行 一个完全孤立的 Docker 容器而不连接到实时 Google 云项目。
完整的项目源在这里:
https://github.com/kmturley/appengine-datastore-nest-angular
如果我没记错的话,当你为后端指定环境变量时,你应该说模拟器地址是 database:8000
而不是 backend:8000
:
environment:
DATASTORE_EMULATOR_HOST: database:8000
除此之外,配置似乎还不错。让我知道是否有帮助
我有一个 Docker Compose 文件,其中 运行 是 Google 数据存储模拟器:
https://cloud.google.com/datastore/docs/tools/datastore-emulator
version: '3'
services:
database:
image: google/cloud-sdk
command: gcloud beta emulators datastore start --host-port 0.0.0.0:8000 --project emulator --store-on-disk
ports:
- 8000:8000
backend:
build: ./backend
command: npm run start:dev
ports:
- 8080:8080
environment:
DATASTORE_EMULATOR_HOST: backend:8000
DATASTORE_PROJECT_ID: emulator
volumes:
- ./backend:/usr/src/app:rw
- /usr/src/app/node_modules
我有一个遵循 NodeJS 数据存储示例的 NodeJS 后端:
https://github.com/GoogleCloudPlatform/nodejs-docs-samples/blob/master/appengine/datastore/app.js
const Datastore = require('@google-cloud/datastore');
const datastore = Datastore();
const query = datastore.createQuery('visit');
datastore.runQuery(query);
当我 运行 脚本在本地运行时:
npm start
然而,当我 运行 和 Docker Compose NodeJS 示例挂起时,没有显示任何错误消息:
docker-compose up
在这两个示例中,我都可以通过访问看到 'Ok' 消息:
http://localhost:8000
所以我知道数据存储实例 运行ning 是正确的。但是当我在以下位置获得端点时它挂起:
为什么挂了?它是否正在尝试连接到实时项目?我想 运行 一个完全孤立的 Docker 容器而不连接到实时 Google 云项目。
完整的项目源在这里:
https://github.com/kmturley/appengine-datastore-nest-angular
如果我没记错的话,当你为后端指定环境变量时,你应该说模拟器地址是 database:8000
而不是 backend:8000
:
environment:
DATASTORE_EMULATOR_HOST: database:8000
除此之外,配置似乎还不错。让我知道是否有帮助