pull/420/head
midoks 2 years ago
parent 8b824447c1
commit 27376d879c
  1. 1
      README.md
  2. 5
      plugins/docker/index.html
  3. 3
      plugins/docker/index.py
  4. 96
      plugins/docker/js/docker.js

@ -104,6 +104,7 @@ docker run -itd --name mw-server --privileged=true -p 7200:7200 -p 80:80 -p 443:
* debian12适配。 * debian12适配。
* 添加nezha插件。 * 添加nezha插件。
* 优化域名ssl保存功能。 * 优化域名ssl保存功能。
* 修复PHP扩展intl不加载问题(debian/ubuntu)。
### JSDelivr安装地址 ### JSDelivr安装地址

@ -4,7 +4,8 @@
<div class="bt-w-menu"> <div class="bt-w-menu">
<p class="bgw" onclick="pluginService('docker');">服务</p> <p class="bgw" onclick="pluginService('docker');">服务</p>
<p onclick="pluginInitD('docker');">自启动</p> <p onclick="pluginInitD('docker');">自启动</p>
<p onclick="dockerList();">容器列表</p> <p onclick="dockerConList();">容器列表</p>
<p onclick="dockerImageList();">镜像列表</p>
</div> </div>
<div class="bt-w-con pd15"> <div class="bt-w-con pd15">
<div class="soft-man-con"></div> <div class="soft-man-con"></div>
@ -12,7 +13,7 @@
</div> </div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
resetPluginWinWidth(700); resetPluginWinWidth(800);
resetPluginWinHeight(400); resetPluginWinHeight(400);
$.getScript( "/plugins/file?name=docker&f=js/docker.js", function(){ $.getScript( "/plugins/file?name=docker&f=js/docker.js", function(){
pluginService('docker', $('.plugin_version').attr('version')); pluginService('docker', $('.plugin_version').attr('version'));

@ -167,7 +167,6 @@ def conListData():
tmp = con.attrs tmp = con.attrs
tmp['Created'] = utc_to_local(tmp['Created'].split('.')[0]) tmp['Created'] = utc_to_local(tmp['Created'].split('.')[0])
conList.append(tmp) conList.append(tmp)
return conList
return mw.returnJson(True, 'ok', conList) return mw.returnJson(True, 'ok', conList)
@ -199,7 +198,7 @@ def imageListData():
tmp_attrs['Created'].split('.')[0]) tmp_attrs['Created'].split('.')[0])
imageList.append(tmp_image) imageList.append(tmp_image)
imageList = sorted(imageList, key=lambda x: x['Created'], reverse=True) imageList = sorted(imageList, key=lambda x: x['Created'], reverse=True)
return imageList return mw.returnJson(True, 'ok', imageList)
def runLog(): def runLog():

@ -53,12 +53,7 @@ function dPostCallbak(method, version, args,callback){
},'json'); },'json');
} }
function dockerList(){ function dockerConList(){
dPost('con_list', '', {}, function(rdata){
var rdata = $.parseJSON(rdata.data);
console.log(rdata);
});
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>\
@ -77,15 +72,100 @@ function dockerList(){
'<th>备注</th>\ '<th>备注</th>\
<th style="text-align:right;">操作</th></tr></thead>\ <th style="text-align:right;">操作</th></tr></thead>\
<tbody>\ <tbody>\
' +'\ ' + '</tbody></table>\
</tbody></table>\
</div>\ </div>\
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\ <div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
</div>\ </div>\
</div>'; </div>';
$(".soft-man-con").html(con);
dPost('con_list', '', {}, function(rdata){
// console.log(rdata);
var rdata = $.parseJSON(rdata.data);
var list = '';
var rlist = rdata.data;
for (var i = 0; i < rlist.length; i++) {
var status = '<span class="glyphicon glyphicon-pause" style="color:red;font-size:12px"></span>';
if (rlist[i]['State']['Status'] == 'running'){
status = '<span class="glyphicon glyphicon-play" style="color:#20a53a;font-size:12px"></span>';
}
list += '<tr>';
list += '<td>'+rlist[i]['Name'].substring(1)+'</td>';
list += '<td>'+rlist[i]['Config']['Image']+'</td>';
list += '<td>'+rlist[i]['Created']+'</td>';
list += '<td>'+status+'</td>';
list += '<td>'+'操作'+'</td>';
list += '</tr>';
}
$('#con_list tbody').html(list);
});
}
function dockerImageList(){
var con = '<div class="safe bgw">\
<button onclick="" title="" class="btn btn-success btn-sm" type="button" style="margin-right: 5px;">获取镜像</button>\
<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="con_list" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr>\
<th>名称</th>\
<th>版本</th>\
<th>大小</th>\
<th>证书</th>\
<th>描述</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>\
' + '</tbody></table>\
</div>\
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
</div>\
</div>';
$(".soft-man-con").html(con); $(".soft-man-con").html(con);
dPost('image_list', '', {}, function(rdata){
console.log(rdata);
var rdata = $.parseJSON(rdata.data);
console.log(rdata);
var list = '';
var rlist = rdata.data;
for (var i = 0; i < rlist.length; i++) {
var tag = rlist[i]['RepoTags'].split(":")[1];
var license = 'null';
if (typeof(rlist[i]['Labels']) == 'null'){
license = 'free';
}
list += '<tr>';
list += '<td>'+rlist[i]['RepoTags']+'</td>';
list += '<td>'+tag+'</td>';
list += '<td>'+rlist[i]['Size']+'</td>';
list += '<td>'+license+'</td>';
list += '<td>'+'操作'+'</td>';
list += '</tr>';
}
$('#con_list tbody').html(list);
});
} }

Loading…
Cancel
Save