首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jenkins部署python Flask应用程序并执行它

使用Jenkins部署python Flask应用程序并执行它
EN

Stack Overflow用户
提问于 2020-03-14 09:52:48
回答 2查看 2.5K关注 0票数 0

我试图使用Jenkins自动部署Python应用程序,然后在Raspberry服务器上使用shell命令来运行它。

以下是一些背景信息

在使用Jenkins之前,我的部署和执行过程是手动描述的:

  1. FTP到我的Python脚本和Python所在的目录
  2. 使用FTP替换Flask应用程序脚本
  3. 通过Raspberry Pi上的终端激活Python(3.5)的虚拟环境("./venv/bin/ Activate ")
  4. 通过在终端中执行"python myFlaskApp.py“来运行myFlaskApp.py

现在,我已经将Jenkins与下面描述的部署/执行过程集成在一起:

  1. 推送到github的代码更改
  2. Jenkins自动从github提取
  3. Jenkins通过执行shell命令将文件部署到指定的目录。
  4. 然后Jenkins激活虚拟环境并运行myFlaskApp.py,方法是在shell终端中击打一个.sh脚本。

现在,问题在第4步,因为一个烧瓶应用程序必须始终活着,我的Jenkins将永远不会“成功地完成构建”,它将始终处于加载状态,因为Flask应用程序正在运行在Jenkins正在使用的shell终端上。

现在,我的问题:在部署了文件而不使其被构建过程“锁定”之后,我应该采取什么正确的方法来用Jenkins激活myFlaskApp.py?

我读过关于Docker、SubShell和Linux实用程序“屏幕”的文章。在我目前的情况下,这些工具对我有帮助吗?我应该采取哪种方法?

EN

回答 2

Stack Overflow用户

发布于 2020-03-15 00:10:27

简单而健壮的解决方案(在我看来)是使用Debian中可用的主管作为supervisor包。它允许你像你的应用程序一样从脚本中创建一个守护进程,它可以产生多个进程,如果应用程序没有崩溃,它可以重新启动它。

注意virtualenv --您不需要激活venv就可以使用它。您只需指出适当的Python可执行文件(your_venv/bin/python),而不是默认的可执行文件。例如:

代码语言:javascript
复制
$ ./venv/bin/python myFlaskApp.py
票数 2
EN

Stack Overflow用户

发布于 2022-11-20 08:36:23

您需要创建这些文件,以便在jenkins上进行部署。

代码可以找到: 光盘

  1. 这既适用于酒瓶也适用于django。
  2. 这个文件是在设置这个项目时需要查看的第一个文件。它安装所需的包,以使该项目工作,如Nginx,Jenkins,Python等。参考youtube视频,看看它是如何和何时使用的。
  3. Jenkinsfile -这个文件包含管道中各个阶段的定义。该项目管道中的阶段是安装Python虚拟环境、安装gunicorn服务和安装Nginx。这个过程中的各个阶段只做了两件事。首先,它使文件可执行,然后运行该文件。该文件执行舞台描述所描述的命令。
  4. envsetup.sh -该文件设置python虚拟环境,安装python包,然后创建将由Nginx使用的日志文件。
  5. gunicorn.sh -这个文件运行一些Django管理命令,比如迁移命令和静态文件收集命令。它还设置了将在后台运行gunicorn服务器的gunicorn服务。
  6. nginx.sh -这个文件使用一个配置文件来设置Nginx,该配置文件将Nginx指向运行我们应用程序的gunicorn服务。这允许Nginx为我们的应用程序服务。我跟踪了一篇数字海洋文章来设置这个文件。您可以浏览一次视频复制网站-可用的和网站启用的扫描。
  7. app.conf -这是一个Nginx服务器配置文件。此文件用于将Nginx设置为到gunicorn的代理服务器。要使此配置工作,请将server_name的值更改为服务器的IP地址或域名。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60681521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档