i wanna make a simple ruby App Engine in rails just like heroku, i’m dealing with a problem now.
My idea was:
1.use rails to establish the App Engine, use a class ‘App’ to handle all apps.
2.when a user create an ruby app he should offer it’s git path
3.when the user deploys it, my app engine will do these things:
- clone the git to a path in my server (done
- use RVM to designatine the ruby version witch user wanted and make a gemdir for the project (some problems here
- create a nginx conf for the project, then include it and reload nginx (i can do it
Problems in the second step:
codes here:
def start_thin
Dir.chdir(proj_path) do
system('rvm use ruby-1.8.7-p352@testname --create')
system('gem env gemdir')
success = system ('thin start -s3 --socket ' + self.proj_sock)
if success
return true
end
end
return false
end
when the code runs here, the log told me “RVM is not a function…blahblah”, i know something about the login-shell and non-login-shell, then i try to fix it via editing .bashrc but same problem occurred.
And if i ignore it, the app can’t be deployed, because of a Load Error :
myapp.rb:2:in `require': cannot load such file -- sinatra (LoadError)
if i open a terminal in that app directory, i can use thin to start it.
i wanna know how to run cmd just like in a terminal, without all these odd problem?
or how to edit my method to fix it?
Thanks!
Thanks Casper and GhostRider.
The user and rvm settings are correct.
After lots of googles and tests i found it’s impossible…
Finally I fixed it by using RVM’s ruby api instead of running system command.
Such as :