docker笔记

[TOC] debian 12 安装docker官方说明文档 centos 7|8|9 安装docker官方说明文档 镜像 查询镜像是否存在 docker search IMAGE_NAME 拉取网上镜像 docker pull IMAGE_NAME:TAG 删除镜像 docker rmi [IMAGE_NAME/IMAGE_ID] 查看镜像 docker images 保存镜像 docker save IMAGE_ID > OUT_PUT_FILENAME.tar 加载镜像 docker load -i OUT_PUT_FILENAME.tar 利用Dockerfile文件创建镜像 在当前目录查找dockerfile,并以TAG_NAME来命名新创建的镜像 ...
Click to read more ...

jenkins插件Active Choices Plug-in使用心得

软件环境 Active Choices Plug-in 2.7.2 Jenkins 2.414.1 (docker: jenkins/jenkins:lts-jdk11) Groovy中调用shell // Choice下拉列出当前工作目录的所在子目录 def proc = "ls".execute() proc.waitFor() def output = proc.in.text return output.split("\n") as ArrayList Input text box 不可编辑 Input text box是Active Choices Reactive Reference Parameter里的一个选项,但它的使用非常奇怪。官方wi...
Click to read more ...

SourceTree自定义菜单命令 拉取所有仓库最新代码

技术和测试同事会在自己的电脑里,同时搭建前后端环境。但前端技术不会去关注后端的内容,只在需要的时候拉取最新后端内容。但是当工程包含多个外部代码仓库时,同事不熟悉工程结构难免偶尔会漏掉更新其中的某些仓库,导致运行异常浪费排查时间。对于这种只管拉取各个仓库最新代码,且不会去做任何修改和切换分支的情况,提供一键拉取所有仓库最新版本的脚本会更为适合。以下是一个仅支持git和svn仓库更新的模版脚本, # file: YOUR_PROJ_ROOT/xxx/update_all_repo.sh function git_repo() { dir=$1 cd $dir echo "branch: "`git branch --show-current` git pu...
Click to read more ...

包装skynet.call&send远程调用接口

从语法层的来看,方法调需要涉及三项内容,目标对象、方法名和参数。对于远程调用来讲,还需要一项,即目标对象所处的位置。所处位置是一个抽象的说法,它可能是物理设备、节点实例、服务实例等标识ID,对于本文谈及的skynet来说,它是服务的标识ID。 不论本地还是远端服务,skynet统一使用skynet.call或send,第一个参数指向服务实例标识ID(再次强调不论本地/远端),第三个参数指向调用该service的方法名称,从第四个开始后面参数是传给远端的参数。读者可能注意到这里跳过第二个参数的说明,是因为它与本文讨论的问题无关,忽略它并不影响本文内容的理解。 基于skynet实现一套业务框架,在接口隔离性方面,我有几点考虑 skynet作为一个具体的实现,其提供的底层接口尽可能...
Click to read more ...

Jenkins流水线SCM Step检出git和svn代码

[TOC] 本文主要介绍使用Pipeline: SCM Step插件,展示如何对git或svn仓库,进行分支/标签切换。需要注意的是Pipeline: SCM Step只是给具体的scm做接口转发,视你使用的具体scm而定,还要安装对应的依赖插件。 git仓库,安装git svn仓库,安装Subversion 关于Pipeline: SCM Step能支持的哪些SCM见compatibility list git分支/标签 首先,要了解git内部管理分支/标签的数据结构,可以参考这里两篇文章Git 内部原理 - Git 引用和Git高级操作:refs和reflog,有以下结论 分支的完整语法:refs/remotes/<remoteRepoName>...
Click to read more ...

skynet中debug_console性能参数说明

[TOC] 增强skynet中debug_console.lua部分指令 stat task 有多个个非BREAK状态的协程 mqlen 当前service上下文消息队列长度 cpu 累计工作毫秒 message 累计处理消息数量 netstat type 连接类型[LISTEN|TCP|UDP|BIND|CLOSING] type = 如果type=LISTEN, 会额外有rtime和wtime字段的性能指标 accept 已监听的连接数 socket ip地址 rtime 距离上次读操作(type=LISTEN,即上次accept,TCP/UPD上次读操作)到执行netstat命令时间隔时间秒,该指标不能完全作为性能的参考标准。 wtime 距离上次写操作(type=LIST...
Click to read more ...

阿毛的编程工具

编辑器vscode 随便用一个主流代码编辑器写一个简单的hello world程序只需要一分钟,但是如果说可能要先花好几天搭建好vim环境才能写出hello world,恐怕大多数读者不会去多看一眼vim。vim的安装过程极可能遇到各种问题(如centor上安装),也可能一切顺利啥事也没有(如ubuntu上安装)。但遇到的问题极大概率都归结到gcc、python版本等常见问题。如果有志于后端开发,不再vim这里遇到,以后在其它地方也是会碰到,也是要学会如何解决。 然而,本文并不是为了介绍如何搭建vim编辑环境,也不是为了介绍如何通过配置让vim看上去更加炫酷。实质上,vim过于折腾,我并不主张用vim作为主力编辑,但vim所倡导的扔掉鼠标,通过高效的键盘快捷键完成代码编辑的理念,非常...
Click to read more ...