博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如果想从jenkins直接生成docker镜像,并推送到harbor中,最简单的脚本如何实现?...
阅读量:6680 次
发布时间:2019-06-25

本文共 1733 字,大约阅读时间需要 5 分钟。

如果不考虑意外,

第一版最简单的构思如下:

#!/usr/bin/env python# -*- coding: utf-8 -*-import getopt, sysimport subprocessimport ossite_name = app_name = dep_version = war_name = ""docker_harbor_ip = "x.x.x.x"docker_login_name = "boss"docker_login_password = "client"#参数用法def usage():    print "./docker.py -s site -a app -d dev --war=war_name"    sys.exit()#获取参数def get_opt():    try:        opts, args = getopt.getopt(sys.argv[1:], "hs:a:d:", ["help", "war="])    except getopt.GetoptError:        print "getopt function has error.."        usage()    for o, a in opts:        if o in ("-h", "--help"):            usage()        if o in ("-s"):            site_name = a        if o in ("-a"):            app_name = a        if o in ("-d"):            dep_version = a        if o in ("--war"):            war_name = a    return site_name, app_name, dep_version, war_name#执行shell命令def docker_cmd(cmd):    return_code = subprocess.call(cmd, shell=True)    if  return_code != 0:        print "command === %s === error" % (cmd)        usage()    return return_codedef main():    site_name, app_name, dep_version, war_name = get_opt()        if "" in [site_name, app_name, dep_version, war_name]:    print "args have empty value..."        usage()            docker_login = 'docker  login -u %s -p %s http://%s' % (docker_login_name, docker_login_password, docker_harbor_ip )    docker_tag = 'docker build -t %s/%s/%s:%s .' % (docker_harbor_ip , site_name.lower(), app_name.lower(), dep_version)    docker_push = 'docker push %s/%s/%s:%s' % (docker_harbor_ip , site_name.lower(), app_name.lower(),dep_version)    for cmd in [docker_login, docker_tag, docker_push]:        docker_cmd(cmd)    print "docker cmd is run..."    if __name__ =='__main__':    main()

 

转载地址:http://ttnao.baihongyu.com/

你可能感兴趣的文章
“脑子快”的程序员更优秀吗?
查看>>
使用脚本实现killproc的功能
查看>>
C语言:字符串读取流读取文件中的数据
查看>>
【Win10 开发】读取PDF文档
查看>>
自定义WCF的配置文件
查看>>
OFTP说明
查看>>
[Phalcon] Phalcon系统默认事件列表
查看>>
安装Xcode主题
查看>>
微信公众平台开发教程(五)自定义菜单
查看>>
talend 连接mysql数据库没有权限
查看>>
Visual Studio 2010打开水晶报表是出现二进制
查看>>
Android 让图片等比例缩放的三种方法
查看>>
Jquery easyui datagrid 删除多行问题
查看>>
android 百度最新地图sdk包怎么去除 放大缩小按钮
查看>>
Java @override报错的解决方法
查看>>
Python 相机镜头
查看>>
redis数据类型
查看>>
PHP 标准库 SPL 之数据结构栈(SplStack)简单实践
查看>>
【推荐】腾讯android镜像(做Android开发的得好好利用下这个网站,国内的大公司还是可以滴……)...
查看>>
Unity3D GUI学习之GUI窗口的使用
查看>>