如果想从jenkins直接生成docker镜像,并推送到harbor中,最简单的脚本如何实现?
如果不考虑意外,
第一版最简单的构思如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import getopt, sys
import subprocess
import os
site_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_code
def 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()


如果想从jenkins直接生成docker镜像,并推送到harbor中,最简单的脚本如何实现?的更多相关文章
- 使用maven插件dockerfile-maven-plugin生成Docker镜像并推送到镜像仓库
1.引入maven插件 <build> <plugins> <plugin> <groupId>com.spotify</groupId> ...
- 利用 Maven 创建 Docker 镜像并且推送到私有注册中心
利用 Maven 命令生成项目框架 mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -Darchetype ...
- 使用Jenkins自带功能(不用shell)构建Docker镜像并推送到远程仓库
意义: 一开始实现这个目的是在Jenkins中使用的shell脚本,也就是如下的这个: bash # 进入到生成jar包的根目录 cd ${WORKSPACE}/${module_filename} ...
- Docker 镜像的推送(六)
目录 一.为镜像命名 二.推送到官方 Docker Hub 1.首先得在 Docker Hub 上注册一个账号. 2.在 Docker Host 上登录 3.修改镜像命名 4.镜像上传 5.登录查看上 ...
- 【OF框架】在Visual Studio中发布Docker镜像,推送镜像到Azure容器注册表
准备 拥有Azure账号,已经创建 Azure容器注册表,获得注册表地址.账号.密码 本地已经在Visual Studio登录Azure账号. 本地已经拥有Docker环境 注意:首次发布Docker ...
- k8s Gitlab CI/CD 之自动编译Docker镜像并推送到指定的Registry
环境介绍: 说明 节点 ip 系统 Gitlab Server git.ds.com 10.0.1.179 CentOS 7.5.1804 Gitlab Runner 10.0.1.178 Cen ...
- jenkins自动打包生成docker镜像后自动发布并nginx代理访问
之前曾写过docker及jenkins基础使用 https://www.cnblogs.com/xiaochangwei/category/816943.html 现在搭建环境的功能为: 1.jen ...
- Maven插件Jib配合Harbor生成Docker镜像
1 说明 Maven插件Jib暂不支持https的自签名,因此只能配置以Http的方式访问Harbor私有仓库 以下基于SpringBoot2.x进行配置 2 Maven配置 2.1 pom.xml中 ...
- 【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)
写在前面 最近,在研究如何使用Maven将SpringBoot项目打包成Docker镜像并发布到Harbor仓库,网上翻阅了很多博客和资料,发现大部分都是在复制粘贴别人的东西,没有经过实践的检验,根本 ...
随机推荐
- Spring MVC温故而知新 – 参数绑定、转发与重定向、异常处理、拦截器
请求参数绑定 当用户发送请求时,根据Spring MVC的请求处理流程,前端控制器会请求处理器映射器返回一个处理器,然后请求处理器适配器之心相应的处理器,此时处理器映射器会调用Spring Mvc 提 ...
- tomcat 启动报错 解决办法 A child container failed during
控制台报错: Caused by: org.apache.catalina.LifecycleException: A child container failed during start at o ...
- springboot 学习笔记(二)--- properties 配置
springboot可以提供了多种方式配置properties. 一.Java System.setProperty(k, v) System.setProperty("myname&quo ...
- 2017 Multi-University Training Contest - Team 2 Puzzle
题目大意: 给定n, m, p.然后按照一个规则往n*m的方格里填数,最后一个方格是空格,然后玩拼图游戏,问能否复原 规则是:把1~n*m-1的排列中的第1,p+1,2*p+1.....个数依次取出来 ...
- 【题解】IOI2005River 河流
一节语文课想出来的玩意儿,调了几个小时……可见细心&好的代码习惯是有多么的重要 (:へ:) 不过,大概竞赛最令人开心的就是能够一点一点的感受到自己的进步吧,一天比一天能够自己想出更多的题,A题 ...
- [NOI2017 D1T1]整数
题目大意:有一个整数 $x$ ,一开始为 $0$ .有 $n$ 个操作,有两种类型: $1 \;a\; b$:将 $x$ 加上整数 $a\cdot 2^b$ ,其中 $a$ 为一个整数, $b$ 为一 ...
- 关于JS中array对象的push( )
push()的参数传的是指针,不是值. var arr = new Array(); var item = 5; arr.push(item); var item = 6; 运行以上代码,arr中的元 ...
- CodeSmith和PowerDesigner (转)
首先,既然要讲解如何使用CodeSmith和PowerDesigner快速生成批量代码,当然要先安装这2个软件啦,下面就简单说说如何安装破解这2款软件吧,当然破解只是学习之用,请大家不要用于商业用途哈 ...
- 按小时或天切割Nginx日志
#按小时或天切割Nginx日志到备份文件夹 LOGS_PATH=/home/www/logs/thc SAVE_PATH=/home/www/logs/thc YESTERDAY=$(date -d ...
- hive向表格中插入数据并分析语句
1,---导入mds_imei_month_info ; //最大的动态分区表 set hive.support.concurrency=false; //是否支持并发 ; //each mapper ...