在六零导航页中使用插件的方式同步阻塞的方式加载docker中的应用

这篇具有很好参考价值的文章主要介绍了在六零导航页中使用插件的方式同步阻塞的方式加载docker中的应用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在自家群晖nas中搭建了导航页,但是总是不方便,每次添加的docker应用都要手动去添加导航信息,就索性直接写个插件(点我查看插件代码);容器启动后是彩色图标,容器关闭后是灰色图标;

需要先加载两个composer 包;

composer require clue/docker-react:^1.4

composer require react/async:3.0

代码如下文章来源地址https://www.toymoban.com/news/detail-505326.html

<?php
require __DIR__ . '/../vendor/autoload.php';
class Plugin_Lists implements PluginInterface
{
    public function list_before($val = '1')
    {
        $this->data();
    }
    public function list_after($val = '1')
    {
        // $this->data();
    }

    private function data()
    {
        $client = new Clue\React\Docker\Client(null, 'http://localhost:2375/');
        $containerList = $client->containerList(true);

        try {
            $containers = React\Async\await($containerList);
            // var_dump($containers);
            $html_tmp = array(
                'g1' => '<ul class="mylist row">', //分组开始标签
                'g2' => '<li id="group_{group_id}" class="title"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-remen"></use></svg><sapn>{group_name}</sapn></li>',  //分组内容
                'g3' => '</ul>',  //分组结束标签

                'l1' => '<li class="col-3 col-sm-3 col-md-3 col-lg-1">',  //链接开始标签
                'l2' => '<a rel="nofollow" href="{link_url}" target="_blank"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-home00"></use></svg><span>{link_name}</span></a>',  //链接内容
                'l3' => '</li>',  //链接结束标签
            );
            $html_data = rearr(['group_id' => 0, 'group_name' => 'MyDocker'], $html_tmp);
            echo $html_data['g1'] . $html_data['g2'];
            foreach ($containers as $key => $container) {
                $data['port'] = $container['Ports'][0]['PublicPort'];

                $data['state'] = $container['State'];
                $data['status'] = $container['Status'];
                $data['link_name'] = ltrim($container['Names'][0], '/');;
                $data['link_url'] =     'http://lylme.lhp:' . $data['port'] . '/';

                echo '<li class="col-3 col-sm-3 col-md-3 col-lg-1">';  //链接开始标签
                if ($data['state'] == 'running') {
                    $state =      '';
                } else {
                    $state =      'style="filter: grayscale(100%);"';
                    $data['link_url'] = '#';
                }

                echo '<a rel="nofollow" href="' . $data['link_url'] . '" target="_blank"><svg ' . $state . ' class="icon" aria-hidden="true"><use xlink:href="#icon-home00"></use></svg><span>' . $data['link_name'] . '</span></a>';  //链接内容
                echo "</li>";  //链接结束标签
            }
            echo $html_data['g3'];
        } catch (Exception $e) {
        }
    }
}

到了这里,关于在六零导航页中使用插件的方式同步阻塞的方式加载docker中的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio中使用ViewPager和BottomNavigationView实现底部导航栏和碎片的同步切换

    通过几次的踩雷和摸索,完成了以上的操作,本教程写的详细全面,包教包会,对新手有好,看了不会的联系我,我倒立洗头给你看。 所需控件: fragment 作为Android中最常用的控件,它有自己的声明周期,可以粗略地等比为能够分屏的activity,但是和activity有区别,fragment有自

    2024年02月08日
    浏览(49)
  • 【JAVA基础】- 同步非阻塞模式NIO详解

    NIO(Non-Blocking IO)是同步非阻塞方式来处理IO数据。服务器实现模式为一个请求一个线程,即客户端发送的链接请求都会注册到选择器上,选择器轮询到连接有IO请求时才启动一个线程进行处理。 同步(synchronous) :调用方式指应用(Application),调用方发起有一个功能调用时,在

    2024年02月13日
    浏览(44)
  • Java IO:同步阻塞和装饰器模式详解

    大家好,我是chowley, 今天来介绍一下Java IO中的两个重要概念—— 同步阻塞和装饰器模式。 在计算机编程中,同步阻塞(Synchronous Blocking)指的是在进行某个操作时,当前线程会被阻塞(即暂停执行),直到该操作完成才会继续执行。在 Java IO 中,输入输出操作通常是同步阻

    2024年02月21日
    浏览(33)
  • 5.1阻塞和非阻塞、同步和异步 5.2Unix、Linux上的五种IO模型

    典型的一次IO的两个阶段是什么?数据就绪和数据读写 数据就绪:根据IO操作的就绪状态 阻塞 非阻塞 数据读写:根据应用程序和内核的交互方式 同步 异步 陈硕:在处理IO的时候,阻塞和非阻塞都是同步IO,只有使用了特殊的API才是异步IO。 一个典型的网络接口调用,分为两

    2024年02月12日
    浏览(42)
  • Linux搭建Web服务器(一)——阻塞与非阻塞、同步与异步、Linux五种IO模型

    目录 0x01 阻塞与非阻塞、同步与异步 阻塞与非阻塞 同步与异步 总结 0x02 Unix、Linux上的五种IO模型 阻塞(blocking) 非阻塞(non-blocking——NIO) IO复用(IO multiplexing) 信号驱动(signal-driven) 异步(asynchronous) 为了理清楚这几个概念,我们可以从 数据就绪 以及 数据读写 层面

    2023年04月10日
    浏览(66)
  • 深入理解Linux内核网络——内核与用户进程协作之同步阻塞方案(BIO)

    系列文章: 深入理解Linux网络——内核是如何接收到网络包的 深入理解Linux网络——内核与用户进程协作之同步阻塞方案(BIO) 深入理解Linux网络——内核与用户进程协作之多路复用方案(epoll) 深入理解Linux网络——内核是如何发送网络包的 深入理解Linux网络——本机网络

    2024年02月13日
    浏览(47)
  • 【Linux学习】多线程——同步 | 条件变量 | 基于阻塞队列的生产者消费者模型

    🐱作者:一只大喵咪1201 🐱专栏:《Linux学习》 🔥格言: 你只管努力,剩下的交给时间! 以生活中消费者生产者为例: 生活中,我们大部分人都扮演着消费者的角色,会经常在超市买东西,比如买方便面,而超市的方便面是由供应商生成的。所以我们就是消费者,供应商

    2024年02月05日
    浏览(51)
  • flink cdc数据同步,DataStream方式和SQL方式的简单使用

    目录 一、flink cdc介绍 1、什么是flink cdc 2、flink cdc能用来做什么 3、flink cdc的优点 二、flink cdc基础使用 1、使用flink cdc读取txt文本数据 2、DataStream的使用方式 3、SQL的方式 总结 flink cdc是一个由阿里研发的,一个可以直接从MySQL、PostgreSQL等数据库直接读取全量数据和增量变更数

    2024年02月13日
    浏览(41)
  • 使用finksql方式将mysql数据同步到kafka中,每次只能同步一张表

    使用finksql方式将mysql数据同步到kafka中,每次只能同步一张表

    2024年02月11日
    浏览(42)
  • Kafka使用MirrorMaker同步数据的两种方式

    MirrorMaker 是 Kafka官方提供的跨数据中心的 流数据同步方案 。原理是通过从 原始kafka集群 消费消息,然后把消息发送到 目标kafka集群 。操作简单,只要通过简单的 consumer配置和 producer配置,然后启动 Mirror,就可以实现准实时的数据同步。 这里需要确保 目标Kafka集群(接收数

    2023年04月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包