Docker Compose
Docker Compose
在本主題中,我們將向您展示如何在 Docker Compose 下執行伺服器端 Ktor 應用程式。我們將使用在
準備好應用程式
擷取資料庫設定
在 配置資料庫連線 教學中建立的專案使用硬編碼屬性來建立資料庫連線。
讓我們將 PostgreSQL 資料庫的連線設定擷取到
開啟 src/main/resources 中的 application.yaml 檔案,並在
ktor群組之外新增storage群組,如下所示:yaml這些設定稍後將在 compose.yml 檔案中進行配置。
開啟 src/main/kotlin/com/example/plugins/ 中的 Databases.kt 檔案,並更新
configureDatabases()函式以從配置檔案載入儲存設定:kotlinconfigureDatabases()函式現在接受ApplicationConfig並使用config.property來載入自訂設定。開啟 src/main/kotlin/com/example/ 中的 Application.kt 檔案,並將
environment.config傳遞給configureDatabases(),以便在應用程式啟動時載入連線設定:kotlin
配置 Ktor 外掛程式
為了在 Docker 上執行,應用程式需要將所有必要的檔案部署到容器中。根據您使用的建置系統,有不同的外掛程式可以完成此操作:
- 使用 Ktor Gradle 外掛程式建立 fat JAR瞭解如何使用 Ktor Gradle 外掛程式建立和執行可執行的 fat JAR。
- 使用 Maven Assembly 外掛程式建立 fat JAR範例專案:tutorial-server-get-started-maven
在我們的範例中,Ktor 外掛程式已套用於 build.gradle.kts 檔案。
配置 Docker
準備 Docker 映像
要將應用程式 Docker 化,請在專案的根目錄中建立一個新的 Dockerfile 並插入以下內容:
TIP
有關此多階段建置如何運作的更多資訊,請參閱 準備 Docker 映像。此範例使用 Amazon Corretto Docker 映像,但您可以將其替換為任何其他合適的替代方案,例如:
配置 Docker Compose
在專案的根目錄中,建立一個新的 compose.yml 檔案並新增以下內容:
web服務用於執行封裝在 映像 內的 Ktor 應用程式。db服務使用postgres映像建立ktor_tutorial_db資料庫以儲存任務。
建置並執行服務
執行以下指令以建立包含 Ktor 應用程式的 fat JAR:
Bash使用
docker compose up指令來建置映像並啟動容器:Bash- 等待 Docker Compose 完成映像建置。
導覽至 http://localhost:8080/static/index.html 以開啟 Web 應用程式。您應該會看到工作管理員用戶端頁面,其中顯示了三個用於篩選和新增新任務的表單,以及一個任務表格。

