예제 #1
0
def create_image():
    """创建镜像"""
    create_image_req = get_request_json_obj()
    # 非空参数校验
    if 'git_address' in create_image_req:
        git_address = create_image_req['git_address']
    else:
        return jsonify({'err_no': 202004281633, 'err_msg': 'param error-git_address cannot be null'})
    if 'image_name' in create_image_req:
        image_name = create_image_req['image_name']
    else:
        return jsonify({'err_no': 202004281633, 'err_msg': 'param error-image_name cannot be null'})

    image_dict = {
        'git_address': git_address,
        'git_branch': create_image_req.get('git_branch', 'master'),
        'image_name': image_name
    }

    # 创建镜像并获取镜像id
    image_id = build_java_project_image(image_dict)

    image_dict['image_id'] = image_id
    err_no, err_msg = insert_image(image_dict)

    return jsonify({'err_no': err_no, 'err_msg': err_msg})
예제 #2
0
def run_docker_container():
    """启动docker容器"""
    run_docker_req = get_request_json_obj()
    if 'docker_id' in run_docker_req:
        docker_id = run_docker_req['docker_id']
    else:
        return jsonify({
            'err_no': 202004301536,
            'err_msg': 'param error-docker_id cannot be null'
        })

    docker_obj = select_docker_by_docker_id(docker_id)
    if docker_obj is None:
        return jsonify({
            'err_no': 202004301547,
            'err_msg': 'cannot find docker record by docker_id'
        })
    if not docker_obj.image_name:
        return jsonify({
            'err_no': 202004301550,
            'err_msg': 'please configure image firstly'
        })

    # 执行脚本启动容器
    docker_dict = {
        'image_name': docker_obj.image_name,
        'net_name': docker_obj.net_name,
        'net_ip': docker_obj.net_ip
    }
    container_id = run_docker(docker_dict)

    # 启动脚本后将容器id回写到数据库中
    err_no, err_msg = update_container_id_by_docker_id(docker_id, container_id)
    return jsonify({'err_no': err_no, 'err_msg': err_msg})
예제 #3
0
def create_docker():
    """新建容器"""
    create_docker_req = get_request_json_obj()
    # 非空参数校验
    if 'project_id' in create_docker_req:
        project_id = create_docker_req['project_id']
    else:
        return jsonify({
            'err_no': 202004280848,
            'err_msg': 'param error-project_id cannot be null'
        })
    if 'image_name' in create_docker_req:
        image_name = create_docker_req['image_name']
    else:
        return jsonify({
            'err_no': 202004280848,
            'err_msg': 'param error-image_name cannot be null'
        })

    docker_dict = {
        'project_id': project_id,
        'image_name': image_name,
        'git_address': create_docker_req.get('git_address', ''),
        'git_branch': create_docker_req.get('git_branch', 'master'),
        'net_name': create_docker_req.get('net_name', ''),
        'net_ip': create_docker_req.get('net_ip', ''),
        'creator_id': create_docker_req.get('creator_id', '')
    }

    err_no, err_msg = insert_docker_container(docker_dict)
    return jsonify({'err_no': err_no})
예제 #4
0
def create_project():
    """新建项目"""
    create_project_req_json = get_request_json_obj()

    project_dict = {"project_name": create_project_req_json['project_name']}
    err_no, err_msg = insert_project(project_dict)

    return jsonify({'err_no': err_no, 'err_msg': err_msg})
예제 #5
0
def run_docker_container_with_sh():
    """启动docker容器,并通过挂载shell文件的方式,拉取启动对应项目"""
    run_docker_req = get_request_json_obj()
    if 'docker_id' in run_docker_req:
        docker_id = run_docker_req['docker_id']
    else:
        return jsonify({
            'err_no': 202005070918,
            'err_msg': 'param error-docker_id cannot be null'
        })

    docker_obj = select_docker_by_docker_id(docker_id)
    if docker_obj is None:
        return jsonify({
            'err_no': 202005070919,
            'err_msg': 'cannot find docker record by docker_id'
        })

    if not docker_obj.git_address:
        return jsonify({
            'err_no': 202005070920,
            'err_msg': 'please configure git_address firstly'
        })

    if not docker_obj.image_name:
        return jsonify({
            'err_no': 202004301521,
            'err_msg': 'please configure image firstly'
        })

    docker_dict = {
        'image_name': docker_obj.image_name,
        'net_name': docker_obj.net_name,
        'net_ip': docker_obj.net_ip
    }
    container_id = run_docker_with_sh(docker_dict)

    # 启动脚本后将容器id回写到数据库中
    err_no, err_msg = update_container_id_by_docker_id(docker_id, container_id)
    return jsonify({'err_no': err_no, 'err_msg': err_msg})