विंडोज एज़ूर में एक उत्पादन मेटीरजेएस ऐप को कैसे तैनात करता है?Windows Azure में MeteorJS ऐप को कैसे तैनात करें?
उत्तर
हां यह है। देखें http://www.meteorpedia.com/read/Deploying_to_a_PaaS
ज्यादातर मामलों में यह "उल्का बंडल", demeteorizer का उपयोग कर, और फिर अपने PaaS प्रदाता के CLIdeploy tool साथ जिसके परिणामस्वरूप फ़ाइलों को अपलोड करने के रूप में सरल है।
Demeteorizer लपेटता है और कुछ है कि और अधिक बारीकी से एक मानक की तलाश में Node.js आवेदन, निर्भरता प्रबंधन के लिए एक package.json फ़ाइल के साथ पूरा जैसा दिखता है बनाने के द्वारा उल्का के बंडल आदेश फैली हुई है।
$ cd /my/meteor/app
$ demeteorizer -o /my/node/app
$ cd /my/node/app
$ npm install
$ export MONGO_URL='mongodb://user:[email protected]:port/databasename?autoReconnect=true&connectTimeout=60000'
$ export PORT=8080
$ forever start main.js
Forever एक डिस्कनेक्ट या दुर्घटना, but not a reboot unless you manually add a boot entry के बाद चल रहे अपने अनुप्रयोग रहता है।
पूरे तैनाती much easier इसके बजाय Meteor Up का उपयोग कर है। या शायद mups, हालांकि इसमें दस्तावेज़ भी अपडेट नहीं किए गए हैं।
एक Azure वेब एप्लिकेशन में कोई उल्का एप्लिकेशन चलाने के लिए:
Azure Web App
Python 2.7
Websockets ON (optional)
WEBSITE_NODE_DEFAULT_VERSION 0.10.32 (default)
ROOT_URL http://webapp.azurewebsites.net
MONGO_URL mongodb://username:[email protected]:36648/dbname (For advanced apps. Request log should say if you need it.)
Dev Machine
Install Visual Studio Community 2015
Install Node 0.12.6
Install Meteor MSI
app> demeteorizer -o ..\app-dem
app-dem\programs\server\packages\webapp.js change .PORT line to "var localPort = process.env.PORT"
app-dem\package.json change "node": "0.10.36" to "node": "0.12.6"
app-dem> npm install
app-dem> git init
app-dem> git add -A .
app-dem> git commit -m "version 1.0 demeteorized Meteor + tweaks"
app-dem> git remote add azure https://[email protected]:443/webapp.git
app-dem> git config http.postBuffer 52428800
app-dem> git push azure master
के बजाय demeteorizer -o
, शायद आप meteor build
इस्तेमाल कर सकते हैं और आउटपुट जड़ में एक package.json बनाएँ:
{
"name": "App name",
"version": "0.0.1",
"main": "main.js",
"scripts": {
"start": "node main.js"
},
"engines": {
"node": "0.12.6"
}
}
हैं bcrypt संकलित नहीं करता है, एक और हालिया संस्करण का उपयोग सुनिश्चित करें:
"dependencies": {
"bcrypt": "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.4.tgz"
}
यह सुनिश्चित करने से पहले कि आपने नोडजेज़ के 32 बिट संस्करण को इंस्टॉल किया है और अपनी विंडोज़ बिल्ड मशीन पर "npm -g इंस्टॉल फाइबर" चलाया है। एज़ूर पर डिफ़ॉल्ट नोडज केवल 32 बिट चल रहा है!
नोट: यदि आप उदाहरण के लिए उपयोग कर रहे हैं तो स्पाइडरजेबल पैकेज जो फैंटॉमजेएस पर निर्भर करता है, यह काम नहीं करेगा। फ़ैंटॉमजेएस को एज़ूर पर वेबपैप में निष्पादित नहीं किया जा सकता है?
- अपनी परियोजना में "उल्का निर्माण .. \ buildOut" और ".. \ buildOut" में स्थित .tar.gz फ़ाइल निकालें।
- प्लेस/में बनाने ".. \ buildout \ बंडल" एक "package.json" युक्त
{
"name": "AppName",
"version": "0.0.1",
"main": "main.js",
"scripts": {
"start": "node main.js"
},
"engines": {
"node": "0.12.6"
}
}
नोट: यकीन है कि "नाम" बनाओ स्थान न हो, नीला इच्छा पर तैनाती असफल।
- अपने पसंदीदा खोल पर, goto .. .. \ buildOut \ bundle \ programs \ server "और" npm इंस्टॉल "चलाएं। यह सभी आवश्यकताओं को डाउनलोड करेगा और उन्हें बनाएगा।
- अब फ़ाइल ".. \ buildOut \ bundle \ programs \ server \ packages \ webapp.js" खोलें और "process.env.port" के लिए खोजें।
यह इस तरह दिखता है:
var localPort = parseInt(process.env.PORT) || 0;
में इस लाइन को बदलने:
var localPort = process.env.PORT || 0;
यह तो अपने उल्का परियोजना जैसे ही यह नोड में चलाता है एक नामित सॉकेट स्वीकार कर सकते हैं की जरूरत है। फ़ंक्शन "parseInt" स्ट्रिंग को जाने नहीं देगा, नामित सॉकेट आपके वेबपैप के वातावरण में स्थित एक स्ट्रिंग है। यह एक कारण के लिए किया जाना चाहिए, यहां एक चेतावनी! अब इस परिवर्तन को सहेजने एक हम लगभग कर लिया है ...
- bcrypt मुद्दे का समाधान: इस फाइल को डाउनलोड करें और इसे कहीं निकालें: https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.4.tgz यह निकालें।
अब स्थित फ़ाइलों को प्रतिस्थापित: ".. \ buildout \ बंडल \ कार्यक्रमों \ सर्वर \ NPM \ NPM-bcrypt \ node_modules \ bcrypt *"
निर्देशिका के और फ़ाइल का कहीं स्थित साथ:। "\ bcrypt-0.8.4 \ package * "
अब निर्देशिका में खोल पर जाएं" .. \ buildOut \ bundle \ programs \ server \ npm \ npm-bcrypt \ node_modules \ bcrypt \ "और सुनिश्चित करें कि आप हटा दें "node_modules" निर्देशिका। यदि node_modules निर्देशिका को हटाया नहीं गया है तो npm किसी कारण से पैकेज नहीं बनाएगा।
खोल "एनपीएम इंस्टॉल" पर चलाएं।
सुनिश्चित करें कि आप "पर्यावरण" चर सेट करें: "MONGO_URL" और "ROOT_URL" पोर्टल में आपके लिए वेबपैप।
यदि सबकुछ बिना किसी त्रुटि के काम करता है, तो आप अपने ऐप को अपने वेबपैप के लिए तैनाती स्लॉट पर गिट रिपॉजिटरी में तैनात कर सकते हैं। ".. \ buildOut \ bundle" पर जाएं और फ़ाइलों को तैनाती स्लॉट के भंडार में प्रतिबद्ध करें। यह निश्चित रूप से तैनाती स्लॉट पर तैनाती करेगा और आवश्यक आईआईएस कॉन्फ़िगरेशन फ़ाइल बनायेगा।
अब एक छोटे से प्रतीक्षा करें और अपने एप्लिकेशन कुछ समय ... आपका एप्लिकेशन चला जाना चाहिए के बाद सक्रिय किया जाना चाहिए और आप सभी कि इसे संभव बनाया करने के लिए
धन्यवाद * .azuresites.net पर इस तक पहुंच सकते हैं।
पोर्टल लाइन को बदलने जैसी अस्पष्ट सामग्री को समझने के लिए माइक्रोसॉफ्ट Deutschland जीएमबीएच के कार्स्टन लेम के लिए धन्यवाद। –
मैं Azure वेब ऐप रूट पर जाने का प्रयास कर रहा हूं, और मेरे स्रोत नियंत्रण को लिंक किया है और ROOT_URL के लिए एक महत्वपूर्ण मान सेट किया है, इसे तैनात किया गया है, हालांकि जब मैं यूआरएल पर जाता हूं, तो यह कहता है कि कुछ भी नहीं है। तैनाती लॉग वास्तव में मुझे ज्यादा नहीं बता रहे हैं। ऐप सेटिंग्स के बजाय ROOT_URL सेट करने के लिए कोई अलग स्थान है? – Trevor
@ ट्रेवर, मुझे नहीं पता कि मैं जानता हूं। सुनिश्चित करें कि डायग्नोस्टिक लॉग सक्षम हैं और मुख्य फ़ाइल 'server.js' है या' package.json' में निर्दिष्ट है। –