2016-12-14 4 views
1

Я пытаюсь развернуть приложение Meteor React в облаке Google, но когда я пытаюсь его развернуть, я получаю сообщение об ошибке, указывающее, что необходимо указать MONGO_URL. Я создаю свое приложение для метеорита и компакт-диск в папке с папками, где я делаю gcloud app deploy. Вот мой пакет.jsonMeteor реагировать на Gcloud

{ 
    "private": true, 
    "scripts": { 
     "start": "node main.js", 
     "install": "(cd programs/server && npm install)" 
    }, 
    "engines": { 
     "node": "6.6.0" 
    } 
} 

Как я могу узнать свое имя и пароль моего метеорита mongo. Запуск регулярного метеорита не спросил меня о моем имени пользователя и пароле. А вот мой app.yaml

runtime: nodejs 
env: flex 
threadsafe: true 
automatic_scaling: 
    max_num_instances: 1 
env_variables: 
    MONGO_URL: 'mongodb://[user]:[pass]@[host]:[port]/[db]' 
    ROOT_URL: 'https://...' 
    METEOR_SETTINGS: '{}' 

Я не знаю, что надеть на MONGO_URL и ROOT_URL если я развернуть на gcloud. Также у меня есть файл настроек для моего проекта. Должен ли он перейти в METER_SETTINGS в app.yaml? Я прошу прощения за задание слишком большого вопроса, но это мой первый случай с gcloud :)

ответ

2

Этот вопрос немного стар, но он по-прежнему получает некоторые взгляды от Google, поэтому давайте ответим по частям, сначала вам нужно понять, как Метеор взаимодействует с MongoDB в области разработки и производства. Когда вы кодируете свое приложение, просто выполнение meteor run делает все волшебство, потому что Meteor развертывает внутренний MongoDB. Это не рекомендуется для реального использования в производстве и не будет работать под любой архитектурой на основе контейнеров (например, Docker, Google App Engine, Heroku и т. Д.).

Учитывая, что вам потребуется развернуть отдельный экземпляр в Google Compute Engine на основе MongoDB. Google готовит их к запуску в Google Cloud Launcher, просто найдите «MongoDB».

Google Cloud Launcher Overview

Я рекомендую Bitnami один, который проще в настройке, если вы только начинаете.

Bitnami MongoDB - No replication

MongoDB instance details

Google автоматически создаст экземпляр и вам будет предоставлена ​​корневая имя пользователя и пароль, наряду с IP-адресом для общего подключения к экземпляру.

Выполните команду ниже, чтобы получить доступ к Монго из терминала:

# Use this template for the command 
mongo "mongodb://root:[email protected]_ADDRESS/" --authenticationDatabase admin 

# For example, with sample values 
mongo "mongodb://root:[email protected]/" --authenticationDatabase admin 

Теперь создайте нового пользователя для Meteor для подключения на вашей вновь созданной базы данных. Никогда не давайте ему учетные данные root, это не сработает, и это небезопасно. Например, назвав базу данных как myapp.

use myapp; 
db.createUser({ 
    user: "meteor_app", 
    pwd: "A_SECURE_PASSWORD", 
    roles: [ "readWrite", "dbAdmin" ] 
}) 

Теперь вы покидаете это соединение и проверяете нового пользователя.

mongo "mongodb://meteor_app:[email protected]_ADDRESS/myapp" 

Если все в порядке, у вас теперь есть ваш MONGO_URL.

# Put this in the app.yaml file, env variables sections 
MONGO_URL: "mongodb://meteor_app:[email protected]_ADDRESS/myapp" 
+0

Спасибо. Я переключился на mongoAtlas и aws – user2646559

+0

Отлично, и если вы согласились с решением, вы должны принять его, чтобы вопрос был отмечен как разрешенный. –

+0

Я не пробовал ваше решение, но если вы на 100% уверены, я соглашусь с ним – user2646559

 Смежные вопросы

  • Нет связанных вопросов^_^