iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 28
0
Mobile Development

老姐好像要用 Kotlin 寫專案,能撐30天嗎?系列 第 28

總之上傳的第二十八天:Docker Image 和 Heroku

  • 分享至 

  • xImage
  •  

雖然 Ktor Server 功能還沒全部寫完,但 30 天的 Intellij Idea Ultimate 試用期也快結束了,只好趕緊上傳到雲端。

畢竟 web 和 app 不同,隨時能上傳更新。

先參考官網範例做出 Docker Image。

https://ktor.io/docs/docker.html
https://ithelp.ithome.com.tw/upload/images/20201007/20129197cJxlFDvxNX.png

發現官網文件 shadow 範例版本 2.0.10 太舊,會出現一些問題,改成參考官網 github https://github.com/ktorio/ktor-samples/tree/1.3.0/deployment/docker
https://ithelp.ithome.com.tw/upload/images/20201007/20129197GGDhjuKLKA.png

buildscript {
    ...
    repositories {
        ...
        maven { url "https://plugins.gradle.org/m2/" }
    }
    dependencies {
        ...
        classpath "com.github.jengelman.gradle.plugins:shadow:5.0.0"
    }
}
apply plugin: "com.github.johnrengelman.shadow"
mainClassName = "com.katelee.ApplicationKt"
shadowJar {
    baseName = 'my-application'
    classifier = null
    version = null
}

用 gradle 面板 build 。

https://ithelp.ithome.com.tw/upload/images/20201007/20129197pdL2ym5XlK.png

然後看一下 my-application.jar 在不在。

https://ithelp.ithome.com.tw/upload/images/20201007/201291975sWUNLfFtr.png

然後開始 build docker image 。

docker build -t my-application .

先試試本地 docker ,和 IDE Intellij Idea 預設的 8080 錯開, localhost:8081 跑起來 ok,看到之前根目錄設定的 hello world 了,接下來準備上傳到雲端。

docker run -m512M --cpus 2 -it -p 8081:8080 --rm my-application

考量到價格的因素,先放上 Heroku 。

https://www.heroku.com/home
https://ithelp.ithome.com.tw/upload/images/20201007/20129197OULEyguxaJ.png

因為是用 docker 所以不適用這個教學,但是可以用來找到安裝 Heroku CLI 的路徑。
https://devcenter.heroku.com/articles/getting-started-with-java
https://ithelp.ithome.com.tw/upload/images/20201007/20129197VPXAI1WhxK.png

Mac 環境安裝網址:https://cli-assets.heroku.com/heroku.pkg

接下來只要執行下面的指令,其中 heroku container:push web 比較耗時,可以來去喝杯可可。

好了, https://{heroku_app_id}.herokuapp.com 也能看到 hello world ,大功告成!

有 https 的話就不用擔心 app 會阻擋連線了。

heroku login
heroku create
heroku container:login
heroku container:push web
heroku container:release web

本次鐵人賽的作品在放進更多內容後已經成書,書名是《老姐要用Kotlin寫專案:從 Server 到 Android APP 的開發生存日記》,歡迎購買唷。https://www.tenlong.com.tw/products/9789864348978


上一篇
頭暈目眩的第二十七天:google 開發者帳戶
下一篇
注意健康的第二十九天:不要廉價賣肝,連假更要養肝。
系列文
老姐好像要用 Kotlin 寫專案,能撐30天嗎?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言