2013-01-10 22 views

Trả lời

6

Vâng. Xem http://www.meteorpedia.com/read/Deploying_to_a_PaaS

Trong hầu hết các trường hợp này cũng đơn giản như sử dụng "bó sao băng", demeteorizer, và sau đó tải lên các tập tin kết quả với PaaS của bạn nhà cung cấp của CLIdeploy tool.

Demeteorizer kết thúc tốt đẹp và mở rộng lệnh bó Meteor bằng cách tạo ra một cái gì đó tương tự như chặt chẽ hơn một tiêu chuẩn tìm Node.js ứng dụng, hoàn chỉnh với một tập tin package.json cho sự phụ thuộc quản lý.

$ 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 giữ ứng dụng của bạn chạy sau khi một ngắt kết nối hoặc sụp đổ, but not a reboot unless you manually add a boot entry.

Việc triển khai toàn bộ là much easier sử dụng Meteor Up thay thế. Hoặc có thể là mups, mặc dù điều đó thậm chí không có tài liệu cập nhật.

Để chạy một ứng dụng Meteor trong một ứng dụng web 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 

Thay vì demeteorizer -o, có lẽ bạn có thể sử dụng meteor build và tạo ra một package.json trong thư mục gốc đầu ra:

{ 
    "name": "App name", 
    "version": "0.0.1", 
    "main": "main.js", 
    "scripts": { 
     "start": "node main.js" 
    }, 
    "engines": { 
     "node": "0.12.6" 
    } 
} 

Nếu bcrypt không biên dịch, hãy đảm bảo sử dụng phiên bản mới hơn:

"dependencies": { 
     "bcrypt": "https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.4.tgz" 
    } 
+0

Nhờ Carsten Lemm của Microsoft Deutschland GmbH để tìm ra những thứ tối nghĩa như thay đổi đường dây PORT. –

+0

Tôi đang cố gắng đi tuyến đường ứng dụng web Azure và đã liên kết điều khiển nguồn của tôi và đặt giá trị khóa cho ROOT_URL, nó được triển khai, tuy nhiên khi tôi truy cập url, nó không có gì ở đó. Các bản ghi triển khai thực sự không nói nhiều với tôi. Có vị trí khác để đặt ROOT_URL thay vì trong cài đặt ứng dụng không? – Trevor

+1

@Trevor, không phải là tôi biết. Đảm bảo nhật ký chẩn đoán được bật và tệp chính là 'server.js' hoặc được chỉ định trong' package.json'. –

4

Trước khi bắt đầu, hãy chắc chắn rằng bạn đã cài đặt phiên bản 32 bit của các nút và đã chạy "npm -g install fibre" trên máy tạo cửa sổ của bạn. Mặc định nodejs trên azure đang chạy 32 bit chỉ!

Lưu ý: điều này sẽ không hoạt động nếu bạn đang sử dụng ví dụ gói có thể chuyển tiếp trên PhantomJS. PhantomJS không thể được thực hiện trong một webapp trên Azure?

  1. Trong dự án "meteor build .. \ buildOut" và giải nén tệp .tar.gz nằm trong ".. \ buildOut".
  2. Nơi/tạo trong ".. \ buildout \ bó" a "package.json" chứa:
{ 
    "name": "AppName", 
    "version": "0.0.1", 
    "main": "main.js", 
    "scripts": { 
     "start": "node main.js" 
    }, 
    "engines": { 
     "node": "0.12.6" 
    } 
} 

Lưu ý: Hãy chắc chắn rằng "tên" không chứa khoảng trắng, các triển khai trên ý chí xanh Thất bại.

  1. Trên vỏ yêu thích của bạn, goto ".. \ buildOut \ bundle \ programs \ server" và chạy "npm install". Điều này sẽ tải xuống trước tất cả các yêu cầu và xây dựng chúng.
  2. Bây giờ hãy mở tệp ".. \ buildOut \ bundle \ programs \ server \ packages \ webapp.js" và tìm kiếm "process.env.PORT".

nó trông như thế này:

var localPort = parseInt(process.env.PORT) || 0; 

thay đổi dòng này vào:

var localPort = process.env.PORT || 0; 

này là cần thiết để dự án thiên thạch của bạn có thể chấp nhận một ổ cắm tên ngay sau khi nó chạy trong nút. Hàm "parseInt" sẽ không để một chuỗi đi qua, socket được đặt tên là một chuỗi nằm trong môi trường webapp của bạn. Điều này của tôi được thực hiện vì một lý do, một cảnh báo ở đây! Bây giờ hãy lưu thay đổi này, chúng tôi sắp hoàn tất ...

  1. Giải quyết vấn đề bcrypt: Tải xuống tệp này và giải nén ở đâu đó: https://registry.npmjs.org/bcrypt/-/bcrypt-0.8.4.tgz Trích xuất.

Bây giờ thay thế các tập tin nằm: ".. \ buildout \ bó \ programs \ server \ NPM \ NPM-bcrypt \ node_modules \ bcrypt *"

với của các thư mục và tập tin nằm ở đâu đó:". \ bcrypt-0.8.4 \ package * "

Bây giờ hãy vào vỏ trong thư mục" .. \ buildOut \ bundle \ programs \ server \ npm \ npm-bcrypt \ node_modules \ bcrypt \ "và đảm bảo bạn xóa thư mục "node_modules". Nếu thư mục node_modules không được gỡ bỏ, npm sẽ không xây dựng gói vì lý do nào đó.

Chạy trên trình bao "cài đặt npm".

Đảm bảo bạn đặt biến "Môi trường": "MONGO_URL" và "ROOT_URL" trong cổng cho ứng dụng web của bạn.

Nếu mọi thứ hoạt động không có lỗi, bạn có thể triển khai ứng dụng của mình tới kho lưu trữ git trên vùng triển khai cho ứng dụng web của bạn. Đi tới ".. \ buildOut \ bundle" và cam kết các tệp đó vào kho lưu trữ của vùng triển khai. Điều này sẽ khóa học triển khai trên khe triển khai và tạo (các) tệp cấu hình iis cần thiết.

Bây giờ chờ đợi một chút và ứng dụng của bạn nên sa thải sau một thời gian ... Ứng dụng của bạn nên được chạy và bạn có thể truy cập nó trên * .azuresites.net

Nhờ tất cả những gì làm này có thể.

Các vấn đề liên quan