记在arm64机器上部署Jenkins并安装Android打包环境
部署环境:在甲骨文白嫖的4核24G运行内存arm64的机器
环境准备阶段首先用docker安装了一个 Jenkins,这个倒是问题不大。在 /etc/jenkins 目录下创建一个 docker-compose.yml 文件。
1234567891011version: '3.8'services: jenkins: image: jenkins/jenkins:lts-jdk17 container_name: jenkins ports: - "9001:8080" # Jenkins web interface volumes: - /etc/jekins/home:/var/jenkins_home # environment: # - JAVA_OPTS=-Djenkins.install.runSetupWizard=false # 禁用初始安装向导
第一个进去后安装推荐的插件,然后配置环境变量。1、”Manage Jenkins” ...
记使用systemclt运行caddy
12345678910111213mv caddy /usr/bin/caddy versiongroupadd --system caddyuseradd --system \ --gid caddy \ --create-home \ --home-dir /var/lib/caddy \ --shell /usr/sbin/nologin \ --comment "Caddy web server" \ caddy
/etc/systemd/system/caddy.service
123456789101112131415161718[Unit]Description=caddy[Service]#工作目录WorkingDirectory=/opt/caddyPrivateTmp=trueRestart=alwaysType=simple#启动命令 前面的路径是jre的路径 后面指定的是配置文件路径ExecStart=caddy run --environ --config /o ...
解决虚拟机搭 openwrt 旁路由 无线设备无法上网的问题
转自:mac OS开启路由转发功能
#mac OS开启路由转发功能
需要mac开启路由功能
环境:MAC OS 13.5.2
机器:macbook pro
##配置方法
基本步骤跟linux类似,不过变量有些变化
1sysctl -w net.inet.ip.forwarding=1
这样就开启了ipv4报文路由转发
路由转发是做啥的?当电脑开启路由转发功能的时候,电脑收到目标地址不是自己电脑的IP地址,不会丢掉,反而会进行路由搜索,发送给目标地址机器(如果能搜索到的话)或者是发送给电脑的相应指定网关或者默认网关
上面的方法电脑重启之后就会没有了,若需要固化,即电脑重启配置依然在,需要写入配置文件,其他一些变量的固化修改也是同样操作
sysctl的一些配置,电脑每次启动的时候就会读取sysctl.conf文件(如果有的话),配置变量,然后其他的缺省值则配置为默认,所以接下来就需要修改/etc/sysctl.conf文件,mac os如果你之前没有建立的话,是搜索不到/etc/sysctl.conf文件的,因为没有啊2333
所以你就需要创建 ...
记在 Virtual Box 中安装 openwrt
下载 openwrt 固件,目前在网站 https://openwrt.mpdn.fun:8443/?dir=lede/x86_64/ 下载
解压后使用命令转换 img 为 vmdk 文件1VBoxManage convertfromraw xxx.img openwrt1.vmdk --format VMDK
新建虚拟机,类型选 Linux, 版本选其他 Linux 64-bit,下一步
虚拟硬盘这里选择使用已有的虚拟硬盘文件,然后去注册,把 vmdk 文件选上
完成后先不要打开,点击设置到网络,连接方式选桥接网卡,高级下面的控制芯片和混杂模式如图
完成后打开虚拟机,编辑 /etc/config/network 文件,修改 interface ‘lan’, 修改其中的 ip 为同网断ip。
修改完成后进入修改后 ip 的 openwrt 管理后台,点击 网络-接口-修改(LAN),修改 ipv4 网关和dns服务器,DHCP 服务器选择忽略,高级设置-使用内置的 IPv6 管理 取消勾选,然后保存&&应用。
重启 openwrt。
记如何在 openwrt 实现开机自启
要在OpenWrt上创建一个开机自启动的服务,你可以按照以下步骤操作:
创建初始化脚本:
假设你要运行的是一个叫my_service的服务。首先,在/etc/init.d/目录下创建一个叫my_service的脚本:
1vi /etc/init.d/my_service
然后,填充脚本内容。这是一个简单的示例,它只是启动一个命令:
1234567891011121314#!/bin/sh /etc/rc.commonSTART=99 # 设置启动的优先级,数值越大,越晚启动start() { echo "Starting my_service..." # 这里替换为你要启动的实际命令 /path/to/my_service_command &}stop() { echo "Stopping my_service..." killall my_service_command}
请注意将/path/to/my_service_command替换为你的服务实 ...
记 githook 实现自动检出
假设仓库目录为 /var/repo/hexo.git,实现每次提交后都自动检出到 /var/www/html。第一步:创建一个 post-commit 文件。
12cd /var/repotouch hexo.git/hooks/post-commit
第二步:添加如下内容
12#!/bin/shgit --work-tree=/var/www/html --git-dir=/var/repo/hexo.git checkout -f
第三步:添加可执行权限
1chmod +x .git/hooks/post-commit
除此之外,还要注意一下 git 用户的权限问题。
记一次Flutter导入Realm在MacOS启动闪退的问题
记一次Flutter导入Realm在MacOS启动闪退的问题按照 Realm 官方文档的示例导入 Real 后,在 Windows 环境运行正常,在 MacOS 环境一运行就闪退。后来搜索到 Issue,在 macos 目录执行 arch -x86_64 pod update 后再次运行,启动正常。据大佬所说这个是 CocoaPods 的 bug?
Android Fragment在用户视角可见性监听
Android Fragment在用户视角可见性监听众所周知,Anroid 的 Fragment 的生命周期十分复杂。并且 Fragment 在不同的组建中甚至有不同的可见性实现,比如早期的 ViewPager 通过调用 Fragment 的 setUserVisibleHint 方法来控制其可见性,而其他一些组建也会通过 FragmentTransaction 的 hide 或者 show 方法实现对 Fragment 的隐藏和显示。除此之外,其本身的生命周期 onPause() 和 onResume() 也会影响其可见性。在 onResume 之前 Fragment 都是不可见的。没有了吗?不是的,还有一种情况会影响 Fragment 的生命周期,那就是其父 Fragment 的可见性。当其父 Fragment 不可见时,其子 Fragment 不一定会收到任何回调,但是其依然会不可见。由此可见,想要实时监听 Fragment 在用户视角的可见性是一件挺复杂的事情。需要考虑很多种情况。
123456789101112131415161718192021222324252627 ...
Android TextView的maxEms 和 maxLength区别
TextView是Android中最常用的控件之一,它有很多属性可以设置,比如字体大小,颜色,对齐方式等。但是,你知道TextView的maxEms和maxLength属性有什么区别吗?这两个属性都可以限制TextView显示的文本长度,但是它们的作用方式和效果并不相同。本文将介绍这两个属性的含义,用法和区别,希望对你有所帮助。
maxEms属性maxEms属性是指TextView的最大宽度,以em为单位。em是一个相对单位,它表示一个字符的宽度。比如,如果TextView的字体大小是16sp,那么一个em就是16sp。如果TextView的maxEms设置为10,那么TextView的最大宽度就是10个em,也就是160sp。如果TextView的文本长度超过了这个宽度,那么TextView会自动换行,或者根据ellipsize属性来显示省略号。
maxEms属性的用法如下:
12345<TextView android:layout_width="wrap_content" android:layout_height="wrap_co ...
记Docker部署个人Golang服务器环境
1、项目目录内新建 Dockerfile ,基于 Golang 镜像构建自己的镜像123456789101112# 以 Golang 官方镜像为基础镜像FROM golang:latest# 设置 GOPROXY 为国内网站,防止编译的时候被墙ENV GOPROXY https://goproxy.cn,directWORKDIR $GOPATH/srcCOPY . $GOPATH/srcRUN go build -o ./out ./srcEXPOSE 18080ENTRYPOINT ["./out"]
2、添加 Git Hooks ,实现推送后自动部署需给 git 用户添加可执行 docker 命令的权限
123456# git 用户加入 docker 用户组sudo usermod -aG docker git# 修改 docker.sock 的权限 /var/run/docker.socksudo chmod a+rw /var/run/docker.sock# 重启 dockersudo systemctl restart docker
添加文件 xxx. ...