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 以開啟網頁應用程式。您應該會看到「任務管理器客戶端」頁面,顯示三個用於篩選和新增任務的表單,以及一個任務表格。