Heroku
在本教學中,我們將展示如何準備與部署 Ktor 應用程式到 Heroku。
前提條件
在開始本教學之前,請確保符合以下前提條件:
- 您擁有一個 Heroku 帳戶。
- Heroku CLI 已安裝在您的機器上。
建立範例應用程式
按照 建立、開啟並執行新的 Ktor 專案 中的說明建立範例應用程式。
請注意,Ktor 提供了兩種方式來 建立與設定伺服器:在程式碼中或透過使用設定檔。部署時的唯一區別在於如何 指定用於監聽傳入請求的連接埠。
準備應用程式
步驟 1:設定連接埠
首先,您需要指定一個用於監聽傳入請求的連接埠。由於 Heroku 使用 PORT 環境變數,您需要設定應用程式以使用此變數的值。根據 設定 Ktor 伺服器 的方式,執行以下其中一項操作:
如果伺服器設定是在程式碼中指定,您可以使用
System.getenv取得環境變數值。開啟位於src/main/kotlin/com/example資料夾中的Application.kt檔案,並按照以下所示更改embeddedServer函式的port參數值:kotlinfun main() { embeddedServer(Netty, port = System.getenv("PORT")?.toIntOrNull() ?: 8080) { // ... }.start(wait = true) }如果您的伺服器設定是在
application.conf檔案中指定,您可以使用${ENV}語法將環境變數指派給port參數。開啟位於src/main/resources中的application.conf檔案並按照以下所示進行更新:ktor { deployment { port = 8080 port = ${?PORT} } }
步驟 2:新增 stage 任務
開啟 build.gradle.kts 檔案並新增一個自訂的 stage 任務,Heroku 會使用此任務來建立可在 Heroku 平台上執行的可執行檔:
tasks {
create("stage").dependsOn("installDist")
}請注意,installDist 任務隨附於 Gradle 應用程式外掛程式,該外掛程式已新增到範例專案中。
步驟 3:建立 Procfile
在專案根目錄中建立一個 Procfile 檔案,並新增以下內容:
web: ./build/install/ktor-get-started-sample/bin/ktor-get-started-sample此檔案指定應用程式可執行檔的路徑,由 stage 任務產生,並允許 Heroku 啟動應用程式。 您可能需要將 ktor-get-started-sample 替換為您的專案名稱。
部署應用程式
若要使用 Git 將應用程式部署到 Heroku,請開啟終端機並依照以下步驟操作:
在本機提交 上一節 中所做的更改:
Bashgit add . git commit -m "Prepare app for deploying"登入 Heroku CLI:
Bashheroku login使用
heroku create命令建立 Heroku 應用程式。 您需要將ktor-sample-heroku替換為您的應用程式名稱:Bashheroku create ktor-sample-heroku此命令執行兩項操作:
- 建立一個新的 Heroku 應用程式,該應用程式可在 Web 儀表板 上使用。
- 將一個名為
heroku的新 Git 遠端新增到本機儲存庫。
若要部署應用程式,將更改推送到
heroku main...Bashgit push heroku main... 並等待 Heroku 建置並發佈應用程式:
... remote: https://ktor-sample-heroku.herokuapp.com/ deployed to Heroku remote: remote: Verifying deploy... done.
