Jenkins部署服务到远程服务器
1.需要安装pulish over ssh 插件 2.系统管理 -> 系统设置(全局设置和路径), 拉到最下面 找到 Pulish over SSH, 进行设置ssh key。
参考https://www.cnblogs.com/yechen2019/p/11529755.html
3.Transfers:
Source files:源文件地址,地址的目录是相对于jenkins workspace的目录(如/var/jenkins_home/workspace/构建的任务名),如果只需要执行命令不需要传输文件的时候,此处可以为空。如果你需要 传输该目录下的所有文件,直接填 **/*, 如果只传单个文件直接填写文件名
Remove prefix:去除的文件地址。在Source files输入框中填入的地址,会默认在服务器下创建相同的文件夹,所以需要将我们不需要的文件夹在这里剔除掉
Remote directory:远程服务器接收文件的地址,会在Pulish over SSH系统配置的路径之后添加的目录。
Exec command:文件传输任务执行完毕后,在远程服务器上执行的命令
远程执行shell脚本默认没有日志:
你需要把这个Verbose output in console
勾上。
执行shell脚本中如果有docker build指定Dockerfile文件路径的方式会报错:
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /root/Dockerfile: no such file or directory
此时需要把脚本文件和Dockerfile文件放在同一个目录,并且cd到防止的目录文件夹,如下:
cp -rf /home/jk_project/witness-app/$BUILD_NUMBER/witness/witness-app/Dockerfile /home/jk_project/witness-app
cp -rf /home/jk_project/witness-app/$BUILD_NUMBER/witness/witness-app/target/witness-app.jar /home/jk_project/witness-app
cd /home/jk_project/witness-app
sh ./start.sh
Jenkins无法执行docker命令:
docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory
解决办法:
进入Jenkins启动后的镜像中,执行
apt-get update && apt-get install -y libltdl7 && apt-get update
还没有评论,来说两句吧...