利用jenkins 构建并且发布代码
1. 构建代码
这里以NodeJS 发布 Docker为例子
1.1创建项目
image.png1.2配置打包参数
配置Git分支参数 (这里还可以配置任何喜欢的参数)
image.png
然后选择打包仓库
image.png
选择打包环境 (我这里是需要用到Node环境去发布代码,所以我选择了Node环境,不需要就不要选)
image.png
1.3开始执行构建脚本构建发布产物
在构建这里搞一个Shell命令输入框
image.png
我在里面执行了我在项目中写好的脚本,也可以把这个脚本直接放在这里去执行
下面是我的build.sh脚本
#! /bin/bash
registry="xxxxx" # 这里就是你要推送的仓库地址
version="latest"
name="web-server"
echo '####################### 开始打包 #######################'
docker build -t $name .
docker tag $name $registry/rdcc/$name:$version
echo '####################### 开始推送到云端仓库 #######################'
# 这里可能需要登录仓库才行,可以加上下面的这句话,登录仓库后再发布
# docker login $registry -u 用户名 -p 密码
docker push $registry/rdcc/$name:$version
执行完这段脚本后就打出一个docker镜像 然后推送到云端上去。
1.4将构建产物发布到本机或者云端
如果是发布本机 那就再加一个Shell框框,执行启动命令
cd ./server
nohup ./docker/startup.sh &
下面是startup.sh脚本
#! /bin/bash
version="latest"
project="web-server"
registry="xxx.xxx.xxx"
port="8060"
#这里是将配置文件用 挂载卷的形式挂载到容器中间去
#settingpath="/xxx/xxx/settings/app.config.json"
#worksettingpath="/app/app.config.json"
#-v $settingpath:$worksettingpath \
docker stop $project || true
docker rm -f $project || true
docker rmi $registry/$project:$version || true
docker pull $registry/$project:$version
docker run --name=$project \
--restart=always \
-d \
-ti \
-p $port:$port \
$registry/$project:$version
如果是要发布到其他的机器上面去就需要加上 Publish over ssh 的插件
具体的思路就是将这个启动脚本 采用scp命令扔到要发布的机器上面去 然后要求远程机器执行这段发过去的脚本
首先到插件管理中去安装这个插件
然后配置这个插件
应该是配置管理 ==> 系统管理下面 找到这个插件的配置项(Publish over SSH)
配置好这里后就可以在程序发布界面选择你需要发布的主机了
在构建之后的那一块中找到这玩意并且配置它
image.png
然后点击保存后就可以开始构建了。
image.png
其实所有的插件在jenkins 的官网都可以搜到的,并且有非常详细的解释;
我这里是发布Docker,要想在jenkins 中执行Docker命令的话是需要 添加一个docker组,然后将jenkins 这个用户加入docker组 然后再重启jenkins 主机(当然可以不重启的呀,但是reboot他不快么)。
错误没出意外的话应该长这样
”Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/images/json: dial unix /var/run/docker.sock: connect: permission denied“
执行下面的脚本
# 执行这个
sudo gpasswd -a jenkins docker #应该是这样子的
reboot
# 或者执行这个(不要宝里宝气都执行啊)
#sudo groupadd docker #添加docker用户组
#sudo gpasswd -a jenkins docker #将登陆用户加入到docker用户组中
#newgrp docker #更新用户组
#docker ps #测试docker命令是否可以使用sudo正常使用
# reboot
#如果上面的都不对 那就百度搜索 gpasswd -a jenkins docker 总能找到你喜欢的东西
正常运行就应该是这样的
image.png
(啥?找不到这个界面吗?左下角有一个闪闪闪的小点点,点它)
image.png
网友评论