如果想从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()

时间: 2024-11-01 07:35:10

如果想从jenkins直接生成docker镜像,并推送到harbor中,最简单的脚本如何实现?的相关文章

Jenkins在Kubernetes中构建Docker镜像并推送至Registry

def label = "mypod-${UUID.randomUUID().toString()}"podTemplate(label: label, cloud: 'kubernetes', containers: [containerTemplate(name: 'maven', image: 'maven:3.3.9-jdk-8-alpine', ttyEnabled: true, command: 'cat'),containerTemplate(name: 'docker'

asp.net core webapi 使用ef 对mysql进行增删改查,并生成Docker镜像构建容器运行

1.构建运行mysql容器,添加数据库user 参考Docker创建运行多个mysql容器,地址 http://www.cnblogs.com/heyangyi/p/9288402.html 添加user数据库,添加tbusers表 2.创建asp.net core webapi 应用程序 参考Docker 为 ASP.NET Core WebApi 应用程序生成 Docker 映像,创建容器并运行,地址 http://www.cnblogs.com/heyangyi/p/9323407.htm

使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上

一个用于构建和推送Docker镜像的Maven插件. 使用Maven插件构建Docker镜像,将Docker镜像push到DockerHub上,或者私有仓库,上一篇文章是手写Dockerfile,这篇文章借助开源插件docker-maven-plugin 进行操作 以下操作.默认你已经阅读过我上一篇文章: Docker 部署 SpringBoot 项目整合 Redis 镜像做访问计数Demo http://www.ymq.io/2018/01/11/Docker-deploy-spring-bo

maven 打包 spring boot 生成docker 镜像

1.所使用材料 ,spring boot 项目 基于maven ,maven 工具, docker工具 ps:为啥使用 docker 公司微服务需要启动太多,有两个优点吧! 1.方便管理,2.减少服务占用内存量 2.上手 a.新建Dockerfile文件如下目录 b.Dockerfile文件内容 FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java",&

docker--从仓库下载镜像到推送自己的项目到仓库步骤详解

怎样从仓库下载的镜像,变成容器,并在容器中制作项目,再将容器变成镜像,然后将镜像推送到仓库? 一:从官网下载镜像 官方的https://hub.docker.com/提供了数十万个镜像提供大家下载 以拉取个人公有centos7.3镜像为例: 拉取方式为 # docker pull 用户/仓库:标签>docker pull kennyyaohong/public:centos7.3 二:进行项目 1.启动容器 # -it 以交互模式启动一个容器 #--name 命名容器 #-d 后台运行容器,并返

生成docker镜像

Docker生成镜像文件的基本步骤是:在主机上创建好Dockerfile文件,然后使用Docker Build命令,可以自动生成image文件,最后使用存出镜像文件进行.具体如下. 使用tomcat为例: 1)查询基础的tomcat镜像来源 使用命令:docker search tomcat 2)编辑简单的Dockerfile文件 命令:Vi Dockerfile 编辑文件内容: #加入tomcat来源#    FROM tomcat:7-jre7    #作者#     MAINTAINER 

php7 安装yar 生成docker镜像

Docker包含三个概念:(1)远程仓库即远程镜像库所有镜像的聚集地(不可进入操作).(2)本地镜像即从远程仓库拉取过来的镜像(3)运行起来的本地镜像叫做容器(分层的可操作)Docker使用:1.首先通过第三方镜像库(c.163.com)拉取相应的信息比如centos,ubuntu,tomcat等作为基础镜像.Docker pull xxxx2.运行下载好的镜像.Docker run -dt -p 宿主机端口:镜像端口 --name起一个名字 镜像id/镜像名字 bash-d 后台运行-t 生成

docker 获取和推送镜像

1.Docker Hub https://registry.hub.docker.com/ 2. docker search [OPTIONS]  镜像 docker search ubuntu (一次只返回25个) docker search -s5 ubuntu (返回5星以上的) 3. 下载镜像 docker pull name:tag 4. 加速下载 5. 上传镜像 docker push 镜像 原文地址:https://www.cnblogs.com/cxhzy/p/10939402.

使用Jenkins构建Docker镜像

Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时Jenkins能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性.并且Jenkins提供了大量的插件,能够完成各种任务. 今天我需要使用Jenkins构建一个Docker镜像,然后自动push到docker registry中.到了docker registry中,后面测试人员就可以把镜像发布到测试环境,测试如