docker update

pull/420/head
midoks 2 years ago
parent 7aecbaf7df
commit 9c31d76442
  1. 42
      plugins/docker/index.py
  2. 36
      plugins/docker/js/docker.js
  3. 1
      plugins/tgclient/js/tgclient.js

@ -233,6 +233,44 @@ def dockerLogCon():
return mw.returnJson(False, 'Get Logs failed') return mw.returnJson(False, 'Get Logs failed')
def dockerRunCon():
# 启动容器
args = getArgs()
data = checkArgs(args, ['Hostname'])
if not data[0]:
return data[1]
Hostname = args['Hostname']
c = getDClient()
try:
conFind = c.containers.get(Hostname)
if not conFind:
return mw.returnJson(False, 'The specified container does not exist!')
conFind.start()
return mw.returnJson(True, '启动成功!')
except docker.errors.APIError as ex:
return mw.returnJson(False, '启动失败!' + str(ex))
def dockerStopCon():
# 停止容器
args = getArgs()
data = checkArgs(args, ['Hostname'])
if not data[0]:
return data[1]
Hostname = args['Hostname']
c = getDClient()
try:
conFind = c.containers.get(Hostname)
if not conFind:
return mw.returnJson(False, 'The specified container does not exist!')
conFind.stop()
return mw.returnJson(True, '停止成功!')
except docker.errors.APIError as ex:
return mw.returnJson(False, '停止失败!' + str(ex))
def imageList(): def imageList():
imageList = [] imageList = []
c = getDClient() c = getDClient()
@ -428,6 +466,10 @@ if __name__ == "__main__":
print(dockerLogCon()) print(dockerLogCon())
elif func == 'docker_remove_con': elif func == 'docker_remove_con':
print(dockerRemoveCon()) print(dockerRemoveCon())
elif func == 'docker_run_con':
print(dockerRunCon())
elif func == 'docker_stop_con':
print(dockerStopCon())
elif func == 'image_list': elif func == 'image_list':
print(imageListData()) print(imageListData())
elif func == 'docker_remove_image': elif func == 'docker_remove_image':

@ -94,9 +94,29 @@ function deleteCon(Hostname){
}); });
} }
function startCon(Hostname){
dPost('docker_run_con','',{Hostname:Hostname},function(rdata){
var rdata = $.parseJSON(rdata.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
if(rdata.status) {
dockerConListRender();
}
});
}
function stopCon(Hostname){
dPost('docker_stop_con','',{Hostname:Hostname},function(rdata){
var rdata = $.parseJSON(rdata.data);
layer.msg(rdata.msg,{icon:rdata.status?1:2});
if(rdata.status) {
dockerConListRender();
}
});
}
function dockerConListRender(){ function dockerConListRender(){
dPost('con_list', '', {}, function(rdata){ dPost('con_list', '', {}, function(rdata){
// console.log(rdata);
var rdata = $.parseJSON(rdata.data); var rdata = $.parseJSON(rdata.data);
console.log(rdata); console.log(rdata);
if (!rdata.status){ if (!rdata.status){
@ -109,8 +129,10 @@ function dockerConListRender(){
var rlist = rdata.data; var rlist = rdata.data;
for (var i = 0; i < rlist.length; i++) { for (var i = 0; i < rlist.length; i++) {
var docker_status = 'stop';
var status = '<span class="glyphicon glyphicon-pause" style="color:red;font-size:12px"></span>'; var status = '<span class="glyphicon glyphicon-pause" style="color:red;font-size:12px"></span>';
if (rlist[i]['State']['Status'] == 'running'){ if (rlist[i]['State']['Status'] == 'running'){
docker_status = 'start';
status = '<span class="glyphicon glyphicon-play" style="color:#20a53a;font-size:12px"></span>'; status = '<span class="glyphicon glyphicon-play" style="color:#20a53a;font-size:12px"></span>';
} }
@ -119,12 +141,17 @@ function dockerConListRender(){
op += '<a href="javascript:;" onclick="logsCon(\''+rlist[i]['Id']+'\')" class="btlink">日志</a> | '; op += '<a href="javascript:;" onclick="logsCon(\''+rlist[i]['Id']+'\')" class="btlink">日志</a> | ';
op += '<a href="javascript:;" onclick="deleteCon(\''+rlist[i]['Config']['Hostname']+'\')" class="btlink">删除</a>'; op += '<a href="javascript:;" onclick="deleteCon(\''+rlist[i]['Config']['Hostname']+'\')" class="btlink">删除</a>';
list += '<tr>'; list += '<tr>';
list += '<td>'+rlist[i]['Name'].substring(1)+'</td>'; list += '<td>'+rlist[i]['Name'].substring(1)+'</td>';
list += '<td>'+rlist[i]['Config']['Image']+'</td>'; list += '<td>'+rlist[i]['Config']['Image']+'</td>';
list += '<td>'+getFormatTime(rlist[i]['Created'])+'</td>'; list += '<td>'+getFormatTime(rlist[i]['Created'])+'</td>';
list += '<td>'+status+'</td>';
if (docker_status == 'start'){
list += '<td style="cursor:pointer;" align="center" onclick="stopCon(\''+rlist[i]['Config']['Hostname']+'\')">'+status+'</td>';
} else{
list += '<td style="cursor:pointer;" align="center" onclick="startCon(\''+rlist[i]['Config']['Hostname']+'\')">'+status+'</td>';
}
list += '<td class="text-right">'+op+'</td>'; list += '<td class="text-right">'+op+'</td>';
list += '</tr>'; list += '</tr>';
} }
@ -136,9 +163,6 @@ function dockerConList(){
var con = '<div class="safe bgw">\ var con = '<div class="safe bgw">\
<button onclick="" title="" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">创建容器</button>\ <button onclick="" title="" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">创建容器</button>\
<span style="float:right"> \
<button batch="true" style="float: right;display: none;margin-left:10px;" onclick="delDbBatch();" title="删除选中项" class="btn btn-default btn-sm">删除选中</button>\
</span>\
<div class="divtable mtb10">\ <div class="divtable mtb10">\
<div class="tablescroll">\ <div class="tablescroll">\
<table id="con_list" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\ <table id="con_list" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\

@ -2,6 +2,7 @@ function readme(){
var readme = '<ul class="help-info-text c7">'; var readme = '<ul class="help-info-text c7">';
readme += '<li>在填写好配置信息好后,还要执行下面命令。进行手机号和短信码验证。再重启,即可正常使用</li>'; readme += '<li>在填写好配置信息好后,还要执行下面命令。进行手机号和短信码验证。再重启,即可正常使用</li>';
readme += '<li>cd /www/server/mdserver-web && source bin/activate && python3 /www/server/tgclient/tgclient.py</li>'; readme += '<li>cd /www/server/mdserver-web && source bin/activate && python3 /www/server/tgclient/tgclient.py</li>';
readme += '<li>https://my.telegram.org/auth</li>';
readme += '</ul>'; readme += '</ul>';
$('.soft-man-con').html(readme); $('.soft-man-con').html(readme);
} }

Loading…
Cancel
Save