У меня есть файл 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
Так что я знаю, что экземпляр хранилища данных работает правильно.Но он зависает, когда я получил конечную точку по адресу:
http://localhost:8080/items
Почему он зависает?Он пытается подключиться к живому проекту?Я хочу запустить полностью разрозненный контейнер Docker без подключения к действующему облачному проекту Google.
Полный источник проекта находится здесь:
https://github.com/kmturley/appengine-datastore-nest-angular