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})
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})
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})
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})
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})