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
在我们的示例中,build.gradle.kts 文件中已应用了 Ktor 插件。
配置 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 应用程序。您应该会看到“任务管理器客户端”页面,其中显示了三个用于筛选和添加新任务的表单,以及一个任务表。

