在 Heroku 上開發 步驟
1. Introduction
申請 Heroku 免費帳號,由於目前的開發環境是Windows,所以按照 Heroku 官網上面的 Getting Started with Ruby on Heroku (Microsoft Windows) 步驟安裝必要的程式。
JDK : JDK 我是安裝 Java SE Development Kit 8u66 (SE 65的程式無法執行,不明原因)。
因為所使用的主機windiws版本是64位元,所以下載x64的JDK檔案
Windows x64 | 186.65 MB | jdk-8u66-windows-x64.exe |
JRuby : 另外,因為JRuby的安裝程式無法偵測到Java Runtime Environment(jre),所以先安裝了Java (Version 8 Update 66),安裝完成後便可以執行JRuby的安裝程序,跑出如下圖的畫面。
Bundler : 在cmd 的小黑窗裡面,直接輸入 jruby -S gem install bundler 這個指令。
如果安裝完成,會顯示如下的畫面。
(像我這種用慣windows的一般安裝介面流程的人,應該會覺得只要在command window輸入一段指令,檔案就安裝完了,實在頗為神奇)
安裝步驟的部分就不一一詳細列出。
2. Set up
安裝 Heroku 在 local的 Heroku Toolbelt for Windows
安裝了之後,它可以幫助我們連結到 git 還有 Heroku Command Line Interface (CLI)。關鍵的是toolbelt是Heroku的local command,可以在local端上面執行自己打造的應用程式(app)。
3.Prepare the app
在cmd視窗裡面輸入以下的文字,按下滑鼠右鍵,選擇複製,並在cmd視窗裡按下滑鼠右鍵,選擇貼上,便能夠直接貼上複製的文字到cmd視窗裡面> git clone https://github.com/heroku/jruby-getting-started.git > cd jruby-getting-started
這時便複製了Github裡 https://github.com/heroku/jruby-getting-started.git 這項條目的檔案到終端這邊。
接著,使用"更換目錄指令(cd,change directory的縮寫)"進入jruby-getting-started這個資料夾
4.Deploy the app
接下來便要練習佈署一個應用程式到Heroku上,並準備讓Heroku接受我們的程式碼。
> heroku create Creating polar-inlet-4930... done, stack is cedar-14 http://polar-inlet-4930.herokuapp.com/ | https://git.heroku.com/polar-inlet-4930.git Git remote heroku added
當創了一個應用程式,我們同時也創了一個 Git remote (叫作 heroku) 聯結到自己local端的資料庫(repository)。目前,Heroku會幫我們的應用程式產生一個隨機的名字。
接著,利用push指令將程式碼進行佈署的動作。執行結果的範例如下:
> git push heroku master Counting objects: 176, done. Delta compression using up to 4 threads. Compressing objects: 100% (113/113), done. Writing objects: 100% (176/176), 31.81 KiB | 0 bytes/s, done. Total 176 (delta 51), reused 170 (delta 48) remote: Compressing source files... done. remote: Building source: remote: remote: -----> Ruby app detected remote: -----> Compiling Ruby/Rails remote: -----> Using Ruby version: ruby-2.2.2-jruby-9.0.0.0 remote: -----> Installing JVM: openjdk1.8-latest remote: Picked up JAVA_TOOL_OPTIONS: -Xmx768m -Djava.rmi.server.useCodebaseOnly=true remote: -----> Installing dependencies using 1.7.12 remote: Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment remote: Picked up JAVA_TOOL_OPTIONS: -Xmx768m -Djava.rmi.server.useCodebaseOnly=true remote: Fetching gem metadata from https://rubygems.org/........... remote: Installing json 1.8.1 ... remote: Installing sass-rails 4.0.5 remote: Your bundle is complete! remote: Gems in the groups development and test were not installed. remote: It was installed into ./vendor/bundle remote: Bundle completed (162.29s) remote: Cleaning up the bundler cache. remote: -----> Preparing app for Rails asset pipeline remote: Running: rake assets:precompile ... remote: Asset precompilation completed (107.72s) remote: Cleaning assets remote: Running: rake assets:clean remote: Picked up JAVA_TOOL_OPTIONS: -Xmx768m -Djava.rmi.server.useCodebaseOnly=true remote: remote: -----> Discovering process types remote: Procfile declares types -> web remote: Default types for Ruby -> console, rake, worker remote: remote: -----> Compressing... done, 97.9MB remote: -----> Launching... done, v6 remote: https://polar-inlet-4930.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done. To https://git.heroku.com/polar-inlet-4930.git * [new branch] master -> master
最後會顯示成功佈署到主程式(master)。
OK,現在應用程式已經佈署上去了,接著輸入下面的指令確保程式正確的在local運行
> heroku ps:scale web=1
最後,輸入下面的指令,或是輸入正確的網址,就能夠在瀏覽器上面執行開發者自行打造的應用程式
> heroku open
執行結果
OK,很順利的在Heroku上面佈署了一個Hello World等級的網站。
如果去Heroku自己的個人帳戶中,找一下database裡面,剛剛所創造的網頁的資料,會發現,原來真正存放的資料庫是Amazon的AWS 雲端平台上。 Heroku則是一個中介商,幫助大家能夠更快速的佈署所開發的網頁到雲端主機上。
5. View Logs
Heroku 把過去的更動紀錄等,都按照時間編排。可以使用 heroku logs --tail 指令觀看過去的任何紀錄。
沒有留言:
張貼留言