Jenkins PHP 部署示例
搭建 Jenkins
在本地搭建 Jenkins
.
参考 jenkins 安装
配置 SSH
配置 ssh
, 程序在 Jenkins
服务器打包完之后,发布到目标服务器上.
Manage Jenkins
-> Configure System
-> Publish over SSH
-> Add
这里需要特别注意的是 Remote Directory
.
此目录必须存在,不会自动创建. 而且发布机(Jenkins)只能将文件放在此目录下.
配置项目
- 创建一个项目
- 输入项目名字,选择
Freestyle project
- 添加项目仓库
- 配置构建
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
这种隐藏文件.
- 构建完之后,发布到目标服务器
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 协议》,转载必须注明作者和本文链接
本帖由系统于 4年前 自动加精
使用
Drone
+Gogs
基于Docker
构建CICD
,既轻量级、简洁,搭建又简单笔记https://github.com/alicfeng/gogs-drone-doc...
@AlicFeng 后面学习 docker 之后,重新用 docker 构建了 ,方便很多,你说的那种方式没了解过,有机会的话再尝试,谢谢分享.
当我用jenkins构建项目的时候,shell命令如同楼主的一样:

如下:
(我的本意是在jenkins上把第三方包下载好,然后打包)
但当我构建的时候报了这样的错误:
任何对我有用的帮助,都将万分感谢~!
@xingseng composer 使用绝对路径吧,感觉是 composer 安装了,但是没有加入到 path 中那种。
@Cryven 感谢,我现在是把vender目录打包放服务器保存一份。shell中就不必composer install了。不过还是觉得不妥,一会排查排查你说的路径问题