рдкрд░рд┐рдЪрдп
Dotcloud рдПрдХ рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред рдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рд╕реНрдЯреИрдХ рдореЗрдВ
Node.JS рд╕рд╣рд┐рдд 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рднрд┐рдиреНрди рд╕реЗрд╡рд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
редрдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рдХрд╛ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рдЗрдВрдкреНрд░реЗрд╢рди рдмрд╣реБрдд рд╕рдХрд╛рд░рд╛рддреНрдордХ рдерд╛ред рдЖрдк рдЖрд╡реЗрджрди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдФрд░ рдХреЛрдб рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рдЧрднрдЧ рднреВрд▓ рд╕рдХрддреЗ рд╣реИрдВред
DotCloud CLI рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░
dotcloud.yml рдкрд░реНрдпрд╛рд╡рд░рдг
рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХрд╛рд░реНрдп рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред рд▓рд┐рдирдХреНрд╕ / рдореИрдХрдУрдПрд╕ рдХреЗ рддрд╣рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рддреБрдЪреНрдЫ рд╣реИ:
sudo easy_install pip && sudo pip install dotcloud
рддреИрдирд╛рддреА рдХреА рддреИрдпрд╛рд░реА
рдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ dotcloud.yml рдлрд╝рд╛рдЗрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдкрд╣реБрдВрдЪ рд╣реЛрдЧреАред рдЖрд╡реЗрджрдиреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА
рдпрд╣рд╛рдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА
рд╣реИ ред Node.JS + Redis рд╕реНрдЯреИрдХ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, dotcloud.yml рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддреА рд╣реИ:
www:
type: nodejs
data:
type: redis
рдпрджрд┐ Node.JS рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЕрддрд┐рд░рд┐рдХреНрдд рдкреИрдХреЗрдЬреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдк
package.json рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЕрдиреНрдп рдкреИрдХреЗрдЬреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреИрдирд╛рддреА рдХреЗ рджреМрд░рд╛рди рдкреИрдХреЗрдЬ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг
package.json рдлрд╝рд╛рдЗрд▓:
{
"engines" : {
"node" : ">=v0.4.5"
},
"dependencies" : {
"redis" : ">=0.6.6" ,
"express" : ">=2.4.2"
}
}
Node.JS рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рддреАрд╕рд░реА рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдкрд░реНрдпрд╡реЗisord.conf рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдореЗрдВ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрде рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ
[program:node]
command = node index.js
directory = /home/dotcloud/current
рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
Dotcloud.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдвреЗрд░ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣реЛрдо рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ
environment.json рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд┐рдП рдмрд┐рдирд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореИрдВрдиреЗ
Redcloud.yml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ Redis рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдерд╛ рдФрд░ рдЗрд╕реЗ
рдбреЗрдЯрд╛ рдирд╛рдо рджрд┐рдпрд╛ рдерд╛, Node.JS рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ Redis рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рд▓рд┐рдЦреЗрдВ:
var envfilepath = '/home/dotcloud/environment.json' ,
environment = JSON.parse(require( 'fs' ).readFileSync(envfilepath));
var host = environment[ 'DOTCLOUD_DATA_REDIS_HOST' ],
port = environment[ 'DOTCLOUD_DATA_REDIS_PORT' ],
pass = environment[ 'DOTCLOUD_DATA_REDIS_PASSWORD' ];
рддреИрдирд╛рддреА
рдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛:
dotcloud create appname
(
appname - рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрд╡реЗрджрди рдХрд╛ рдирд╛рдо, рдЬреЛ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)
рдареАрдХ рд╣реИ, рд╕реАрдзреЗ рдбреЙрдЯрдХреНрд▓рд╛рдЙрдб рдкрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдзрдХреНрдХрд╛ рджреЗрдВ
dotcloud push appname ~/path-to-node-app/
рдпрджрд┐ рддреИрдирд╛рддреА рд╕рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП www рдкрддрд╛ рдЬрд╛рд░реА рдХрд░реЗрдВрдЧреЗред
Deployment finished successfully. Your application is available at the following URLs
www: d07c100d.dotcloud.com
рдФрд░ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдбреЛрдореЗрди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
DNS рд░рд┐рдХреЙрд░реНрдб
CNAME Gateway.dotcloud.com рдкрдВрдЬреАрдХреГрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛
ред рдЗрд╕реА рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдПред рдФрд░ рдЕрдкрдиреЗ рдбреЛрдЯрдХреНрд▓рд╛рдЙрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рдЙрдкрдирд╛рдо рдЬреЛрдбрд╝реЗрдВ:
dotcloud alias add appname.www www.example.com
рдЖрдк SSH рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
dotcloud ssh appname.www
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рд╕реНрддреГрдд рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдЖрджреЗрд╢реЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ