1. 背景
客户有一个小小需求,需要拷贝构建阶段源代码至指定服务器目录,正好最近在玩alpine自定义镜像,于是测试一番,已实现该功能,简介如下。
2. 步骤
2.1. 基础镜像
根据用户自身喜好,准备一个含 scp 及 sshpass 工具包的简单基础镜像
- 如 alpine 环境: apk --no-cache add curl openssh-client sshpass 提前安装即可
- 我打包的版本地址在 hub.docker.com上 docker pull cnrock/alpine:0.05
2.2. 脚本设置
2.2.1. 编辑环境配置组
添加类似环境变量(target_user账号,SSHPASS密码,target_ip服务器地址)
2.2.3. 流水线测试阶段
应用--流水线--测试阶段script编辑
2.2.4. 脚本截图
- 注意下方的镜像名为前面设置好scp 及 sshpass 工具包的基础镜像内网地址 10.10.150.105/myapp/alpine:latest
2.2.5. 脚本样本
#检查环境变量
env |grep -wE 'SSHPASS|target_user|target_ip'
ls -a
#主体命令sshpass+scp -e 代入前面的密码,还有-o StrictHostKeychecking=no跳过首次KEY检查
sshpass -e scp -o StrictHostKeychecking=no -vr * [email protected]$target_ip:/tmp/1
#清理环境变量
unset target_user target_ip SSHPASS
2.3. 效果检查
检查流水构建效果,我们登录 target_ip服务器,可以看到/tmp/1 目录 准确的拷贝了源文件过来
2.4.脚本改进
还能通过代码源日期之类的变量增加一些其他控制。
文章评论