Docker上出現了一個好用的套件,叫做Dokku
利用這個套件可以在任何IaaS的平台上建立類似Heroku的PaaS服務
看來Heroku的末日快到了
在比較過AWS、Linode、和DigitalOcean的IaaS平台的價格之後
發現DigitalOcean的價格是最實惠的($5/month),所以我們就從DigitalOcean開始吧
用以下連結註冊可以拿到$10的儲值金,等於免費試用2個月
https://www.digitalocean.com/?refcode=810a7d07e0c2
註冊DigitalOcean的帳號
屌絲們選擇最便宜的方案就對了。剩下的伺服器位置和額外功能就看自己的需求吧
創建Dokku
而來選擇Applications下的Dokku。最後填入ssh keys
沒有的話,用
ssh-keygen -t rsa
產生一組keys,把id_rsa.pub的內容複製上去就行了。
按下Create,等伺服器開完機就可以使用了
升級Dokku的版本
用ssh登入伺服器
ssh root@your_droplet_ip_address
更新Dokku的版本
cd ~/dokku
git pull origin master
make install
更新Buildstep的版本,這東東是Docker版的Heroku Buildpacks
docker pull progrium/buildstep:latest
加入dokku要使用的public key
先用瀏覽器打開伺服器的網頁
會出現Droplet的設定頁面。貼上dokku的public key,按下Finish就行了
創建App
找到要上傳的git project
把dokku加入remote repository裡面
git remote add dokku dokku@your_droplet_ip_address:app_name
如果之前沒進去Droplet的設定頁面按Finish的話,這裡git會要求輸入密碼(但是我們是ssh keys登入,根本沒密碼呀)
接下來把程式碼push到dokku
git push dokku master
push完畢之後,再次登入
ssh root@your_droplet_ip_address
用ps查詢app的port
docker ps
會出現
CONTAINER ID | IMAGE | COMMAND | STATUS | PORTS | NAMES |
---|---|---|---|---|---|
d96737fbaaa3 | dokku/hello:latest | "/start web" | Up 3 minutes | 0.0.0.0:32768->5000/tcp | angry_wozniak |
上面的32768就是app對應的external port (5000是internal port)
用瀏覽器打開app的網頁
如果沒問題,就可以看到app的404頁面了(咦?)