【问题标题】:how to create deployment pipeline using jenkins如何使用詹金斯创建部署管道
【发布时间】:2018-09-25 21:14:30
【问题描述】:

使用 Jenkins 将代码从开发环境部署到生产环境意味着什么。任何人都可以请帮忙。我目前在我的 gitlab 中有源代码。我需要将此代码从 dev env 部署到 prod env

提前致谢。

【问题讨论】:

    标签: jenkins deployment continuous-integration pipeline continuous-deployment


    【解决方案1】:

    GitLab 中的源代码只是创建 WAR/EAR/JAR 以运行应用程序所需的文件。

    环境文件(如果存在)使应用程序在每个环境中的行为略有不同,即 DEV/PROD 您在 DEV 上看到的数据与您在 PROD 上看到(应用程序已上线),因为开发人员倾向于测试/修改代码/数据以确保应用程序正常工作。这在 DEV 上很好,但在 PROD 上是一个很大的禁忌,因为它会影响业务。

    将代码从 dev 部署到 prod 环境只是意味着使用正确的环境文件构建应用程序,例如 DEV 指向 xyz DB,而 prod 指向 abc DB。

    所有这些都可以通过 jenkins 来实现,如果您的项目使用 maven/gradle,那么您可以使用单行命令来实现上述目标。(在此处使用谷歌搜索会有所帮助)

    如果您的项目不涉及 Maven/Gradle,那么每次构建发生时,您都必须根据可以从 jenkins 传递的参数替换环境文件。

    【讨论】:

    • 我的问题是如何使用 jenkins 作业将源代码复制到容器中。我有一个使用 docker cp 将文件复制到容器的想法,但这不起作用。您还有其他想法吗?
    • 那里有什么问题??你试过 scp 命令吗?还是使用 ssh 复制??你能补充更多信息吗
    • 我试过 docker cp 因为 jenkins 是一个容器,我想将代码复制到另一个容器。
    • 我试过 docker cp 从 jenkins 容器到另一个容器。为此,我在 docker 中安装了 docker。 (错误设置ulimit:不允许操作)
    【解决方案2】:

    整个过程是 DevOps 文化的一部分。简单来说,它看起来像这样:

    1. 开发人员将更改推送到源代码控制(即 gitlab)。
    2. 构建服务器(即 Jenkins)自动下载最新更改并构建应用程序(即创建设置文件或仅创建二进制文件)。通常你会运行测试(单元、集成、自动化测试等)。如果出现故障,则开发人员会收到有关它的通知。这整个过程称为持续集成。
    3. 如果一切顺利,您就可以将应用程序部署到生产环境中。这部分过程称为持续部署。

    这是网络应用程序的常用策略。对于较大的项目,QA 团队会测试软件,并在 QA 团队批准后部署软件。

    【讨论】:

    • 感谢您的回复。我的 github 中有一个没有任何测试的 python 应用程序。我的工作是将它部署到 dev、qa 和 prod 环境中。问题是我是否需要先构建它才能部署它。我知道 Maven 用于构建 Java 应用程序。如何构建 python 应用程序?
    • 我相信您可以使用 cx_Freeze 或 py2exe 等工具为 python 创建包。他们创建 msi / exe 文件,您可以将其复制到您的 qa/dev/prod 环境并以静默模式安装(无需用户交互)。
    • 我不需要构建 python 代码。我只需要使用 jenkins 作业将源代码部署到另一个容器。你能帮忙吗
    • 那你问的是不同的问题。我不熟悉容器,所以无法帮助您。我认为您应该创建一个主题,其中包含您在上次评论中问我的问题。
    猜你喜欢
    • 2019-06-14
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2017-03-05
    • 1970-01-01
    • 2019-01-09
    • 2018-11-28
    • 1970-01-01
    相关资源
    最近更新 更多