Jenkins PHP 部署示例

搭建 Jenkins

在本地搭建 Jenkins.

参考 jenkins 安装

配置 SSH

配置 ssh, 程序在 Jenkins 服务器打包完之后,发布到目标服务器上.

Manage Jenkins -> Configure System -> Publish over SSH -> Add

selection_011

这里需要特别注意的是 Remote Directory.

此目录必须存在,不会自动创建. 而且发布机(Jenkins)只能将文件放在此目录下.

配置项目

  • 创建一个项目

selection_012

  • 输入项目名字,选择 Freestyle project

selection_013

  • 添加项目仓库

selection_014

  • 配置构建

selection_015

selection_016

project=blog
desc_name=/tmp/$project.$BUILD_ID.$BUILD_NUMBER.tar.gz

composer install --no-dev

tar -cvz  --exclude='.git' --exclude=$desc_name -f $desc_name .
mv $desc_name .

这里使用 . 而不是 ./*, ./* 不会压缩隐藏文件
项目里会包含配置文件 .env.example 这种隐藏文件.

  • 构建完之后,发布到目标服务器

selection_017

selection_018

PREFIX=/data/www
LIB=$PREFIX/lib

TIME=$(date +%Y%m%d%H%M%S)

DESC_NAME=blog."$TIME"
DESC=$LIB/$DESC_NAME

LINK_NAME=blog
LINK_DESC=$PREFIX/$LINK_NAME

mkdir -p $DESC
tar -xzf /tmp/demo/blog.$BUILD_ID.$BUILD_NUMBER.tar.gz -C $DESC
cd $DESC
cp .env.example .env

ln -snf $DESC $LINK_DESC

配置完成,保存,点击 Build Now 就可以了.

如果觉得不错,可以给我一个 STAR.

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 3年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

使用Drone + Gogs 基于Docker构建CICD,既轻量级、简洁,搭建又简单笔记
https://github.com/alicfeng/gogs-drone-doc...

5年前 评论

@AlicFeng 后面学习 docker 之后,重新用 docker 构建了 ,方便很多,你说的那种方式没了解过,有机会的话再尝试,谢谢分享.

5年前 评论

当我用jenkins构建项目的时候,shell命令如同楼主的一样:
如下:
(我的本意是在jenkins上把第三方包下载好,然后打包)
file
但当我构建的时候报了这样的错误:

file

任何对我有用的帮助,都将万分感谢~!

4年前 评论

@xingseng composer 使用绝对路径吧,感觉是 composer 安装了,但是没有加入到 path 中那种。

4年前 评论

@Cryven 感谢,我现在是把vender目录打包放服务器保存一份。shell中就不必composer install了。不过还是觉得不妥,一会排查排查你说的路径问题

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!