如何使用 jenkins 在 apache 中部署我的 Web 应用程序?

问题描述 投票:0回答:2

我必须使用 Jenkins 在 Apache2 中部署我的 Web 应用程序(在 React 中制作)。

我想要 jenkins 而不是将存储库数据重定向到“Building in workspace /var/jenkins_home/workspace/”以自动将它们重定向到“/var/www/”并在进行推送时在那里构建构建等等更新网站自动。

我找了很多零件都找不到可以帮助我的资料,我不知道是否可以。

我使用Ubuntu作为操作系统,但稍后我会将Jenkins服务器部署到CentOS Stream。

所以任何一个的信息都可以为我工作。

尝试使用 bash 命令但没有用

“目录(“文件夹”){ sh“密码” }"

在文件夹中,我将路径添加到“/www/var/home/osboxes/jenkins/var/jenkins_home/workspace/CI - CD”,但它给了我以下错误:

enter image description here

shell ubuntu jenkins centos jenkins-cli
2个回答
0
投票

复杂度:

  1. 您可以使用 jenkins publish over ssh 插件 将您的文件夹从工作区复制到远程服务器。您必须在您的 jenkins 服务器上生成一个密钥并将其复制到部署目标上。 (不要使用用户/密码,因为它非常不安全)。
  2. 你可以做一个小的 ansible 角色,jenkins 可以用来:连接到服务器,用时间戳备份现有文件夹,删除旧备份,从工作区复制新内容并重新启动服务器。
  3. dockerize 你的应用程序,推送你的图像并让 jenkins 在远程服务器上运行远程命令来更新正在运行的容器。如果使用标签,回滚将很容易。这种方式停机时间非常低(秒)

对于所有这些尝试使用 jenkins 管道作为代码并在项目代码中提交你的 jenkinsfile。


0
投票

我通过 FTP 将文件部署到 apache 服务器,但现在我想用 jenkins 自动化它。

太棒了,所以使用 Jenkins 通过 FTP 将文件部署到 apache 服务器。有一个命令

lftp
。我通常将 docker 图像与我需要的命令一起使用,例如 https://hub.docker.com/r/minidocks/lftp .

docker.image('minidocks/lftp').inside() {
    # h
    sh 'lftp -u login,password yourapacheserver.host.com -e "put  ./yourfile ; exit "'
}

我会把那个

lftp
命令行放在脚本中,这样你就可以先在本地测试它。

© www.soinside.com 2019 - 2024. All rights reserved.