客户有一个小小需求,需要拷贝构建阶段源代码至指定服务器目录,正好最近在玩alpine自定义镜像,于是测试一番,已实现该功能,简介如下。
根据用户自身喜好,准备一个含 scp 及 sshpass 工具包的简单基础镜像
- 如 alpine 环境: apk --no-cache add curl openssh-client sshpass 提前安装即可
- 我打包的版本地址在 hub.docker.com上 docker pull cnrock/alpine:0.05
添加类似环境变量(target_user账号,SSHPASS密码,target_ip服务器地址)
应用--流水线--测试阶段script编辑
- 注意下方的镜像名为前面设置好scp 及 sshpass 工具包的基础镜像内网地址 10.10.150.105/myapp/alpine:latest
#检查环境变量
env |grep -wE 'SSHPASS|target_user|target_ip'
ls -a
#主体命令sshpass+scp -e 代入前面的密码,还有-o StrictHostKeychecking=no跳过首次KEY检查
sshpass -e scp -o StrictHostKeychecking=no -vr * $target_user@$target_ip:/tmp/1
#清理环境变量
unset target_user target_ip SSHPASS
文章评论