gpt4 book ai didi

jenkins - 如何使用 Jenkins 在本地自动部署 Play Framework (2.4) 应用程序?

转载 作者:行者123 更新时间:2023-12-02 12:56:47 25 4
gpt4 key购买 nike

如何在 Jenkins 运行的同一服务器上本地自动部署 Play Framework (2.4) 应用程序?在某些时候,我们将单独设置一个适当的生产环境,并且可能会以相同的方式实现测试环境,但此时我想检查是否可以设置一个简单的测试环境到 Jenkins 正在运行的同一台服务器。

我有一份 Jenkins 工作正在运行测试,它似乎工作正常。基本上是“执行 shell”运行激活器命令(可以合并为一行)。

./activator clean
./activator test

在 Play 1 中,我使用了 play startplay stop 来实现类似的操作。在我的开发环境上尝试 activator start 时,我收到消息:

The start command is deprecated, and will be removed in a future version of Play.
To run Play in production mode, run 'stage' instead, and then execute the generated start script in target/universal/stage/bin.
To test your application using production mode, run 'testProd' instead.

因此,我使用“执行 shell”和阶段评估了两个(不完整的)替代方案:

使用 nohup 进行阶段和运行:

./activator clean
./activator stage
nohup target/universal/stage/bin/my-app -Dplay.evolutions.db.default.autoApply=true

-> 应用程序启动正常,但 Jenkins 任务没有停止。

在后台使用 nohup 进行阶段和运行:

./activator clean
./activator stage
nohup target/universal/stage/bin/my-app -Dplay.evolutions.db.default.autoApply=true &

-> 应用程序似乎已启动到某个时刻,但没有继续运行?

这里首选(甚至唯一有效)的方式是什么?

最佳答案

对于特定情况,我最终使用了 Docker:

  • 将 Docker 安装到服务器
  • 基于play-docker-ci创建了一个Dockerfile
  • 将 Jenkins 配置为
    • 构建 Docker 镜像
    • 停止现有容器(如果正在运行),删除现有容器(如果存在)
    • 运行 Docker 镜像

到目前为止,这似乎工作得很好。

关于jenkins - 如何使用 Jenkins 在本地自动部署 Play Framework (2.4) 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31066125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com