In this post I show what is necessary to deploy a simple Meteor application to IBM Bluemix public instance. In this example we already have a simple Meteor application we have tested and verified using "meteor" itself , running on localhost at port 3000.
1. Lets remove the local DB files, be careful as this will remove the local DB so you should do this when your ready to deploy to Bluemix only.
pas@pass-mbp:~/ibm/software/meteor/myfirst_app$ meteor reset
Project reset.
2. Create a manifest.yml file for the deployed application, the ENV variable ROOT_URL is required and also a buildpack which supports Meteor runtime is being pushed with the application.
applications:
- name: pas-meteor-firstapp
memory: 256M
instances: 1
path: .
host: pas-meteor-firstapp
domain: mybluemix.net
buildpack: https://github.com/jordansissel/heroku-buildpack-meteor.git
env:
ROOT_URL: http://pas-meteor-firstapp.mybluemix.net/
3. Push the application as shown below.
pas@pass-mbp:~/ibm/software/meteor/myfirst_app$ cf push -f manifest.yml
Using manifest file manifest.yml
Creating app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
Using route pas-meteor-firstapp.mybluemix.net
Binding pas-meteor-firstapp.mybluemix.net to pas-meteor-firstapp...
OK
Uploading pas-meteor-firstapp...
Uploading app files from: .
Uploading 3.7K, 11 files
Done uploading
OK
Starting app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
-----> Downloaded app package (4.0K)
Cloning into '/tmp/buildpacks/heroku-buildpack-meteor'...
-----> Moving app source into a subdirectory
Node engine: 0.10.36
Npm engine: unspecified
Start mechanism: none
node_modules source: none
node_modules cached: false
NPM_CONFIG_PRODUCTION=true
NODE_MODULES_CACHE=true
PRO TIP: Use 'npm init' and 'npm install --save' to define dependencies
See https://devcenter.heroku.com/articles/nodejs-support
PRO TIP: Include a Procfile, package.json start script, or server.js file to start your app
See https://devcenter.heroku.com/articles/nodejs-support#runtime-behavior
-----> Installing binaries
Downloading and installing node 0.10.36...
-----> Building dependencies
Skipping dependencies (no source for node_modules)
-----> Checking startup method
-----> Finalizing build
Creating runtime environment
Exporting binary paths
Cleaning up build artifacts
Build successful!
/tmp/staged/app
└── (empty)
-----> Fetching Meteor 1.0.3.2
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 72.4M 100 72.4M 0 0 14.3M 0 0:00:05 0:00:05 --:--:-- 15.6M
-----> Unpacking Meteor 1.0.3.2
Meteor 1.0.3.2 is installed
-----> Building Meteor App Bundle
-----> Installing App's NPM Dependencies
npm WARN package.json meteor-dev-bundle@0.0.0 No description
npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
npm WARN package.json meteor-dev-bundle@0.0.0 No README data
> fibers@1.0.1 install /tmp/staged/app/build/bundle/programs/server/node_modules/fibers
`linux-x64-v8-3.14` exists; testing
Binary is fine; exiting
underscore@1.5.2 node_modules/underscore
semver@4.1.0 node_modules/semver
eachline@2.3.3 node_modules/eachline
└── type-of@2.0.1
chalk@0.5.1 node_modules/chalk
├── ansi-styles@1.1.0
├── escape-string-regexp@1.0.3
├── supports-color@0.2.0
├── has-ansi@0.1.0 (ansi-regex@0.2.1)
└── strip-ansi@0.3.0 (ansi-regex@0.2.1)
source-map-support@0.2.8 node_modules/source-map-support
└── source-map@0.1.32 (amdefine@0.1.0)
-----> Uploading droplet (82M)
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
0 of 1 instances running, 1 starting
1 of 1 instances running
App started
OK
App pas-meteor-firstapp was started using this command `node build/bundle/main.js`
Showing health and status for app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-meteor-firstapp.mybluemix.net
last uploaded: Wed Apr 15 05:13:01 +0000 2015
state since cpu memory disk details
#0 running 2015-04-15 03:18:18 PM 0.1% 149.2M of 256M 351.1M of 1G
4. Verify application is running
pas@pass-mbp:~/ibm/software/meteor/myfirst_app$ cf app pas-meteor-firstapp
Showing health and status for app pas-meteor-firstapp in org pasapi@au1.ibm.com / space dev as pasapi@au1.ibm.com...
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: pas-meteor-firstapp.mybluemix.net
last uploaded: Wed Apr 15 05:13:01 +0000 2015
state since cpu memory disk details
#0 running 2015-04-15 03:18:18 PM 0.0% 149.2M of 256M 351.1M of 1G
5. Access as shown below.
http://pas-meteor-firstapp.mybluemix.net/
Finally if you need to use a data store which most applications will then you need to define an ENV variable for your MongoDB store as shown below. In this example below I am using a service in the Bluemix catalog for MongoDB itself and
MONGO_URL: mongodb://zzzzzzzzz:yyyyyyyyyyy
More Information
https://www.meteor.com/install
No comments:
Post a Comment