def insert_project(project_dict): """新建项目信息记录""" project_obj = ModelProject() project_obj.project_id = gen_unique_id() project_obj.project_name = project_dict.get('project_name', '') project_obj.project_description = project_dict.get('project_description', '') project_obj.project_creator_id = project_dict.get('project_creator_id', '') try: db.session.add(project_obj) db.session.commit() except IntegrityError as e: current_app.logger.info('exception= {}'.format(e)) return 202004251120, 'duplicate project name' return 0, 'success'
def insert_docker_container(docker_dict): """新建docker容器记录""" docker_obj = ModelDockerContainer() docker_obj.docker_id = gen_unique_id() docker_obj.project_id = docker_dict.get('project_id') docker_obj.container_id = docker_dict.get('container_id', '') docker_obj.git_address = docker_dict.get('git_address') docker_obj.git_branch = docker_dict.get('git_branch') docker_obj.image_name = docker_dict.get('image_name') docker_obj.net_name = docker_dict.get('net_name') docker_obj.net_ip = docker_dict.get('net_ip') docker_obj.creator_id = docker_dict.get('creator_id') db.session.add(docker_obj) db.session.commit() return 0, 'success'
def run_docker_with_sh(docker_dict): """启动docker容器,并通过挂载shell文件的方式,拉取启动对应项目""" shell_file_name = ROOT_DIR + 'run_docker_with_volumn.sh' tmp_file = gen_unique_id() param_arr = [ 'sh', shell_file_name, docker_dict.get('image_name'), docker_dict.get('net_name', ''), docker_dict.get('net_ip', ''), '>', tmp_file ] os.system(' '.join(param_arr)) file = open(tmp_file) lines = file.readlines() container_id = lines[-1] os.system('rm -rf ' + tmp_file) if container_id.endswith('\n'): return container_id[0:-1] return container_id
def run_docker(docker_dict): """调用脚本,根据指定镜像启动docker容器""" sh_file_path = ROOT_DIR + 'run_docker.sh' tmp_file = gen_unique_id() param_arr = [ 'sh', sh_file_path, docker_dict.get('image_name'), docker_dict.get('net_name', ''), docker_dict.get('net_ip', ''), '>', tmp_file ] os.system(' '.join(param_arr)) file = open(tmp_file) lines = file.readlines() container_id = lines[-1] os.system('rm -rf ' + tmp_file) if container_id.endswith('\n'): return container_id[0:-1] return container_id
def build_java_project_image(image_dict): """调用脚本 从git拉取java项目,返回生成的镜像id""" sh_file_path = ROOT_DIR + 'build_java_image.sh' git_address = image_dict['git_address'] git_branch = image_dict['git_branch'] image_name = image_dict['image_name'] tmp_file = gen_unique_id() param_arr = [ 'sh', sh_file_path, git_address, git_branch, image_name, '>', tmp_file ] os.system(' '.join(param_arr)) file = open(tmp_file) lines = file.readlines() tail_line = lines[-1] os.system('rm -rf ' + tmp_file) image_id = tail_line.split(' ')[-1] if image_id.endswith('\n'): return image_id[0:-1] return image_id