def stand_up_compose(target): """ Stand up compose based on target """ args = ["docker-compose", "--env-file", "client.env"] if target in [LaunchTarget.discovery, LaunchTarget.everything]: discovery_image = f"docker.greenkeytech.com/discovery:{env['DISCOVERY_TAG']}" pull_image(discovery_image) args += ["-f", "discovery.yaml"] if target in [LaunchTarget.nlprocessor, LaunchTarget.everything]: nlprocessor_image = ( f"docker.greenkeytech.com/nlprocessor:{env['NLPROCESSOR_TAG']}") pull_image(nlprocessor_image) args += ["-f", "nlprocessor.yaml"] args += ["up", "-d", "--force-recreate"] with patch.object(sys, "argv", args): docker_compose()
def teardown_docker_compose(): """ Teardown docker compose """ args = [ "docker-compose", "--env-file", "client.env", "-f", "discovery.yaml", "-f", "nlprocessor.yaml", "down", ] with patch.object(sys, "argv", args): docker_compose() for volume_name in [ CUSTOM_DISCOVERY_INTERPRETER, BUILTIN_DISCOVERY_MODELS, BUILTIN_NLPROCESSOR_MODELS, ]: remove_volume(volume_name)
def command(self, cmd, *args): # cmd: up、start、stop等 if cmd not in ( 'up', 'start', 'stop', 'pause', 'restart', 'top', 'ps', 'logs', 'down', ): return '为了安全,默认只开放部分命令操作权限' cmd_args = list(self.cmd_args) cmd_args.append(cmd) cmd_args.extend(args) sys.argv = [str(i.strip()) for i in cmd_args if i.strip()] # print sys.argv, 777777777 strio = cStringIO.StringIO() sys.stderr = sys.stdout = strio # 输出重定向到内存变量,用于显示到网页 try: docker_compose()() # 执行docker-compose命令,参数为sys.argv[1:] except Exception as e: print '执行docker-compose出错:\r\n', e raise sys.stderr = sys.__stderr__ # 还原输出到控制台 sys.stdout = sys.__stdout__ # 还原输出到控制台 msg = strio.getvalue() # print '###################' # print msg # print '###################' return msg