005.Gitlab CICD变量使用
文章目录
- 变量介绍
- 预定义变量
- 项目信息类
- 版本控制类
- 流水线执行类
- runner环境类
- 作业执行类
- 容器注册类
- 其他类别
- 自定义变量
- 变量使用
- 预定义变量使用
- 创建流水线
- 提交流水作业
- 自定义变量使用
- 创建流水线
- 提交流水作业
- 图形UI创建变量
- UI自定义变量
- 创建流水线
- 提交流水作业
变量介绍
预定义变量
gitlab cicd预定义了大量的变量,也可以手动新增自定义变量。
其中各种变量涉及了项目信息、操作信息等。
在流水线处理的时候可以使用变量实现更丰富的控制。
项目信息类
变量名 | 描述 | 示例 |
---|---|---|
CI_PROJECT_ID | 当前项目唯一ID | 12345678 |
CI_PROJECT_DIR | 项目下载的目录 | |
CI_PROJECT_NAME | 项目名称 | myapp |
CI_PROJECT_DESCRIPTION | commit的描述 | |
CI_PROJECT_NAMESPACE | 项目的组 | |
CI_PROJECT_NAMESPACE_ID | 项目的组ID | |
CI_PROJECT_TITLE | 项目标题 | My first Project |
CI_PROJECT_PATH | 项目全路径 | mygroup/myapp |
CI_PROJECT_PATH_SLUG | URL友好路径 | my-group-my-project |
CI_PROJECT_URL | 项目Web访问地址 | https://gitlab.linuxsb.com/mygroup/myapp |
CI_PROJECT_VISIBILITY | 项目可见性 | private/internal/public |
版本控制类
变量名 | 描述 | 示例 |
---|---|---|
CI_COMMIT_AUTHOR | commit的作者 | Xianghy |
CI_COMMIT_DESCRIPTION | commit的描述 | |
CI_COMMIT_MESSAGE | commit的信息 | Fix critical bug |
CI_COMMIT_SHA | 当前提交的完整SHA值 | 1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
CI_COMMIT_SHORT_SHA | 前8位提交SHA(适合短标签) | 1a2b3c4d |
CI_COMMIT_REF_NAME | 构建的分支或标签名称 | main |
CI_COMMIT_BRANCH | commit分支名称(标签触发时为空) | feature/login |
CI_COMMIT_TAG | 打tag标签名称(仅标签触发时存在) | v1.0.0-release |
CI_COMMIT_TAG_MESSAGE | 打tag标签信息 | |
CI_COMMIT_TIMESTAMP | 提交时间戳 | 2023-08-20T12:34:56Z |
CI_COMMIT_TITLE | commit的标题,commit信息的第一行 | |
CI_COMMIT_DEFAULT_BRANCH | 默认分支 |
流水线执行类
变量名 | 描述 | 示例 |
---|---|---|
CI_BUILDS_DIR | 编译的根目录 | |
CI_PIPELINE_ID | 流水线唯一ID | 98765432 |
CI_PIPELINE_IID | 项目内流水线编号 | 123 |
CI_PIPELINE_SOURCE | 流水线触发来源 | push/web/schedule/api |
CI_PIPELINE_URL | 获取URL详情的URL | |
CI_PIPELINE_TRIGGERED | 是否由触发词启动 | true/false |
CI_PIPELINE_CREATED_AT | 流水线创建时间 | 2023-08-20T12:34:56Z |
runner环境类
变量名 | 描述 | 示例 |
---|---|---|
CI_RUNNER_ID | 执行Runner的ID | 10 |
CI_RUNNER_DESCRIPTION | Runner描述 | my-shared-runner |
CI_RUNNER_TAGS | Runner标签列表(逗号分隔) | study_runner |
CI_RUNNER_VERSION | GitLab Runner版本 | 16.8.1 |
CI_SERVER_HOST | GitLab服务器域名 | gitlab.linuxsb.com |
CI_SERVER_PORT | GitLab服务器端口 | 443 |
CI_SERVER_PROTOCOL | 使用协议 | https |
CI_SERVER_URL | GitLab实例地址 | https://gitlab.linuxsb.com |
作业执行类
变量名 | 描述 | 示例 |
---|---|---|
CI_JOB_ID | 作业唯一ID | 345678 |
CI_JOB_NAME | 作业名称 | build |
CI_JOB_STAGE | 所属阶段 | test |
CI_JOB_STATUS | 作业状态 | success/failed |
CI_JOB_MANUAL | 是否手动触发 | true/false |
CI_JOB_TOKEN | 作业临时令牌 | xxxxxxxx |
CI_JOB_TIMEOUT | 作业的超时 | |
CI_JOB_STARTED_AT | 作业开始时间 | 2023-08-20T12:34:56Z |
容器注册类
变量名 | 描述 | 示例 |
---|---|---|
CI_REGISTRY | 容器注册中心地址 | registry.linuxsb.com |
CI_REGISTRY_IMAGE | 项目容器镜像地址 | registry.linuxsb.com/mygroup/myapp |
CI_REGISTRY_USER | 注册用户名 | gitlab-ci-token |
CI_REGISTRY_PASSWORD | 注册临时密码 | [动态生成] |
CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX | 依赖代理前缀 linuxsb.com:443/my-group/dependency_proxy/containers |
其他类别
变量名 | 描述 | 示例 |
---|---|---|
CI_DEBUG_TRACE | 开启详细调试日志 | true |
CI_DISPOSABLE_ENVIRONMENT | 是否为临时环境 | true |
CI_OPEN_MERGE_REQUESTS | 关联的合并请求 | 123,456 |
CI_KUBERNETES_ACTIVE | 是否在K8s环境运行 | true |
自定义变量
gitlab cicd中的自定义变量,可以直接在 .gitlab-ci.yml 文件中通过 variables 关键字定义。也可以在图形界面进行创建。
在 .gitlab-ci.yml 配置文件中,定义 variables 关键字有两种作用范围,一种的全局变量,一种的局部变量。
全局变量表示对 .gitlab-ci.yml 文件有效,即表示对文件内的所有作业 job 有效。
局部变量就是在特定 job 中定义,仅对当前 job 有效。
变量使用
预定义变量使用
创建流水线
创建一个简单的流水作业,输出相关变量。
[root@gitclient myapp]# git rm .gitlab-ci.yml[root@gitclient myapp]# vim .gitlab-ci.yml
stages:- compilecompile:stage: compilescript:- echo ${CI_COMMIT_BRANCH}- echo ${CI_PIPELINE_SOURCE}- echo ${CI_PROJECT_NAME}tags:- study-runner
提交流水作业
[root@gitclient myapp]# git add .gitlab-ci.yml
[root@gitclient myapp]# git commit -m "Test env"[root@gitclient myapp]# git push origin main
查看作业执行情况,如下所示,能正常输出变量。
自定义变量使用
创建流水线
在compile 和 build 两个 job 中,都打印了 IP 和 PORT 变量。
且一个是全局变量,一个是局部变量,观察打印的结果是否符合预期。
[root@gitclient myapp]# git rm .gitlab-ci.yml[root@gitclient myapp]# vim .gitlab-ci.yml
stages:- compile- buildvariables:IP: "172.24.8.180"compile:variables:PORT: 22stage: compilescript:- echo ${IP}:${PORT}- echo ${CI_COMMIT_BRANCH}- echo ${CI_PIPELINE_SOURCE}- echo ${CI_PROJECT_NAME}tags:- study-runnerbuild:stage: buildscript:- echo ${IP}- echo ${PORT}tags:- study-runner
提交流水作业
[root@gitclient myapp]# git add .gitlab-ci.yml
[root@gitclient myapp]# git commit -m "Test global variable and local variable"[root@gitclient myapp]# git push origin main
查看作业情况:
如上所示,对于 compile 都能正常打印,对于 build ,在 compile 里定义的局部变量是无法打印出来的。
图形UI创建变量
UI自定义变量
对于一些敏感数据,如用户名、密码等,建议在图形界面创建自定义变量。
进入 myapp 项目 ——> 设置 ——> CI/CD ——> 变量。
添加用户名的变量:
变量名: USERNAME
变量值: Xianghy
添加用户密码的变量:
变量名: PASSWORD
变量值: Xiangpassword123
且设置为隐藏。
创建流水线
创建一个引用用户名和密码的流水线,测试图形界面创建的自定义变量。
[root@gitclient myapp]# vim .gitlab-ci.yml
stages:- compilevariables:IP: "172.24.8.180"compile:variables:PORT: 22stage: compilescript:- echo ${IP}:${PORT}- echo ${CI_COMMIT_BRANCH}- echo ${USERNAME}- echo ${PASSWORD}tags:- study-runner
提交流水作业
[root@gitclient myapp]# git add .gitlab-ci.yml
[root@gitclient myapp]# git commit -m "Test webui variable"[root@gitclient myapp]# git push origin main
查看作业情况:
如上所示,对于敏感数据,作业中会隐藏显示。
相关文章:
005.Gitlab CICD变量使用
文章目录 变量介绍预定义变量项目信息类版本控制类流水线执行类runner环境类作业执行类容器注册类其他类别 自定义变量 变量使用预定义变量使用创建流水线提交流水作业 自定义变量使用创建流水线提交流水作业 图形UI创建变量UI自定义变量创建流水线提交流水作业 变量介绍 预定…...
即时通讯软件BeeWorks,企业如何实现细粒度的权限控制?
BeeWorks作为一款专为企业设计的即时通讯平台,高度重视用户隐私安全,采取了多种措施来保障数据的保密性、完整性和可用性。 首先,BeeWorks采用私有化部署模式,企业可以将服务器架设在自己的网络环境中,所有通讯数据&a…...
高可用架构:Keepalived、Nginx与Docker深度解析
本文深入解析了Keepalived技术,阐述其基于VRRP协议实现高可用的核心功能,包括虚拟路由器冗余、健康检查、负载均衡集成及脚本执行与通知。同时,设计了Nginx高可用方案,涵盖双机主从、主主及多点集群模式,分析其优缺点。…...
127.0.0.1本地环回地址(Loopback Address)
127.0.0.1 是计算机网络中的一个特殊IPv4地址,称为本地环回地址(Loopback Address),主要用于以下用途: 1. 基本定义 本地主机(Localhost):该地址始终指向当前正在使用的计算机本身&a…...
Windows Terminal 美化增强攻略 2.0:打造个性化高效开发环境(快捷键介绍、编程语言环境、starship美化、高效命令行工具)
前言:从 1.0 到 2.0,终端美化进阶之旅 去年,我曾在文章《使用 oh-my-posh 和 clink 打造个性化 PowerShell 和 CMD》中分享了 Windows 终端的美化方案。那时,我选择了 oh-my-posh 作为核心工具,虽然效果不错ÿ…...
网络出故障时,四大表(MAC表、ARP表、路由表、转发表)怎么查?看看这套排查顺序
网络出故障时,四大表 (MAC表、ARP表、路由表、转发表) 怎么查 说正题之前,我们先来假设一个场景: 场景假设: 一台华为设备突然上不了网,或者访问某个 IP 不通。 你会怎么排查? 别慌,兄弟&a…...
第七天 开始Unity Shader的学习之Unity中的基础光照之高光反射光照模型
Unity Shader的学习笔记 第七天 开始Unity Shader的学习之Unity中的基础光照之高光反射光照模型 文章目录 Unity Shader的学习笔记前言一、高光反射光照模型1.逐顶点光照① Properties② 顶点着色器中计算高光specular③ Fallback效果展示 2.逐像素光照① 片元着色器输出结构体…...
《从 MyBatis-Plus 到 Elasticsearch:一个后端的性能优化踩坑实录》
最近接手了一个老项目,单表查询用 MyBatis-Plus 写得飞起,但一到多表关联模糊搜索就卡成 PPT。痛定思痛,决定引入 Elasticsearch 优化查询性能,结果踩坑无数……记录下这次从 ORM 到搜索引擎的升级历程&#…...
docker 常用指令整理
以下是Docker常用操作指令的整理,分为镜像管理、容器操作、网络配置、数据卷管理、Docker Compose及系统维护等部分: 一、镜像管理 拉取镜像 docker pull [镜像名]:[标签] # 默认标签为latest # 示例:拉取Ubuntu 20.04镜像 docker pull ubun…...
密码格式校验c#和js两种
if (!IsValidPassword(xinmima)) { //在前端校验过了,这里不需要 ClientScript.RegisterStartupScript(GetType(), "", "alert(新密码必须至少8位,且至少包含大写字母、小写字母、数字、特殊符号中的3种)", true); } /// <summary> …...
线程控制
POSIX线程库 与线程有关的函数构成了⼀个完整的系列,绝⼤多数函数的名字都是以“pthread_”打头的要使⽤这些函数库,要通过引入头文件<pthread.h>链接这些线程函数库时要使⽤编译器命令的“-lpthread”选项 eg: g -o $ $^ -lpthread这个pthread库…...
WebView 与 JavaScript 的交互
从技术深度、安全意识 和 实战经验来介绍。以下是分层次的回答策略,从基础到高级逐步深入: 1. 基础实现 回答要点: "Android 和 JavaScript 的交互主要通过 WebView 的两种方式实现: Android 调用 JS: kotlin we…...
解决word中公式大小不一问题
文章目录 前言一、初见端倪二、解决方法三、题外话 前言 记录一下在 word 中使用 mathtype 编辑公式时出现的公式字体大小不一的问题的解决方法。 一、初见端倪 最近在 word 中使用 mathtype 进行公式编辑,刚开始编辑的公式并没有什么问题,过了几天后再…...
Haply与PickNik合作:Inverse3三轴力反馈控制器集成MoveIt Pro,提升机器人操作精度
Haply Robotics与PickNik Robotics合作,将Inverse3力反馈控制器集成到MoveIt Pro平台,优化人机交互,提升机器人操作精度。实时力反馈技术使操作者感知机器人与环境的交互力,增强远程操作的精确度和灵敏度,推动机器人技…...
【Linux笔记】文件的传输(scp、rsync、归档、压缩)
一、sshd 1、概念 在Linux系统中,文件传输常依赖于SSH协议(Secure Shell),而sshd(OpenSSH Daemon)是负责处理SSH连接的后台服务程序。通过sshd,用户可以在加密的通道中进行安全的远程登录、命…...
单位矩阵的特点
《单位矩阵的特性与重要性质》 单位矩阵是一种特殊的方阵,具有以下特点: 主对角线元素全为 1:单位矩阵 I n I_n In是一个 n n n\times n nn的方阵,其主对角线(从左上角到右下角的对角线)上的元素均为 …...
AI处理漫画转视频
AI处理漫画转视频 第一步 从漫画PDF文件读取图片 第二部 图片信息剪裁 第三步 OCR识别处理图片,获取漫画对应的文本信息 第四步 运用阿里云通义大模型千文处理提取的文本信息更符合文本语言 第五步 运用FishVideo大模型将文本信息转变为对应的语音 第六步 图片转视…...
三维空间中的离散曲线段匹配方法
基于离散 F r e ˊ c h e t Fr\{e}chet Freˊchet距离实现工程中的三维曲线段匹配 在自动驾驶系统中, 准确匹配相邻车道线是实现安全导航, 变道决策和路径规划的核心任务. 由于道路网络存在交叉口, 弯道, 多车道并行等复杂场景, 如何衡量目标车道曲线与其他候选车道线的空间关…...
HTML的Canvas元素
<Canvas>元素 <Canvas>元素是HTML5引入的一个强大的绘图元素,它允许通过 JavaScript 在网页上动态绘制图形、动画和交互式内容。需要注意的是,<Canvas>元素只是图形的一个容器,绘制图形必须使用Javascript。 空画布 <…...
Django学习记录-2-数据库
Django学习记录-2-数据库 文章目录 Django学习记录-2-数据库参考贴连接数据库后台查看数据库后台改为中文 table增删改查Python使用hash保持一致 虽然网上教程都很多,但是感觉自己记录一下才属于自己,之后想找也方面一点,文采不佳看的不爽可绕…...
qq邮箱群发程序
1.界面设计 1.1 环境配置 在外部工具位置进行配置 1.2 UI界面设计 1.2.1 进入QT的UI设计界面 在pycharm中按顺序点击,进入UI编辑界面: 点击第三步后进入QT的UI设计界面,通过点击按钮进行界面设计,设计后进行保存到当前Pycharm…...
spring mvc 中 RestTemplate 全面详解及示例
RestTemplate 全面详解及示例 1. RestTemplate 简介 定义:Spring 提供的同步 HTTP 客户端,支持多种 HTTP 方法(GET/POST/PUT/DELETE 等),用于调用 RESTful API。核心特性: 支持请求头、请求体、URI 参数的…...
openEuler-22.03-LTS-SP3 编译安装 Greenplum-db 6.20.0
openEuler-22.03-LTS-SP3 编译安装 Greenplum-db 6.20.0 1、配置 yum 华为源2、安装依赖3、源码安装 openssl 1.0.1u3.1、openssl 1.1.1 降级到 openssl 1.0.1 4、源码安装 python 2.75、使用 pip3 安装 Python 相关依赖6、编译安装 Greenplum-db 6.20.06.1、修改配置6.2、基于…...
天锐蓝盾多模式加密技术,构筑企业数据安全堡垒
一旦企业发生数据泄露,将遭受严重的经济损失,声誉也会一落千丈,甚至可能在激烈的竞争中陷入绝境。那么,企业究竟该如何守护敏感数据,筑牢数据安全的 “护城河” 呢?天锐蓝盾数据泄露防护系统给出了全面且专…...
可编辑37页PPT | 建筑行业DeepSeek日常实操培训
荐言摘要:随着人工智能技术的快速发展,DeepSeek作为一款具有创新性的AI工具,正逐步渗透到建筑行业的各个环节。为帮助建筑行业从业者掌握DeepSeek的核心功能与应用技巧,提升工作效率与决策能力,特推出本次建筑行业Deep…...
C语言指针和函数
文章目录 C语言指针和函数一、指针与函数1.传递指针给函数2.指针函数3.函数指针4.回调函数 二、多级指针三、空指针四、野指针 C语言指针和函数 在C语言的编程领域中,指针是一把强大而又危险的“双刃剑”。它不仅能够直接操作内存,提升程序的运行效率&a…...
左右开弓策略思路
一、策略概述 本策略是一种基于多种技术指标的复杂交易策略,包括自定义指标计算、过滤平滑处理以及交易信号生成。 该策略通过不同的交易平台代码段实现,旨在通过分析历史价格数据来预测未来价格走势,并据此生成交易信号。 二、主要技术指标…...
mapbox基础,加载F4Map二维地图
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性二、🍀F4Map 简介2.1 ☘️技术特点2.2 ☘️核…...
doxygen自动生成文档,注释容易错位的补充
开发过程中,为了简化api开发文档的编写工作,我们可以使用doxygen的标注来进行文档注释,最后自动化的生成相关文档: 参考:https://developer.aliyun.com/article/935529 参考:https://blog.csdn.net/qq_3459…...
git操作0409
git init git add. git commit -m "Initial commit" git checkout 7890abc # 切换到旧版本代码(只读) git checkout master # 切回最新版本 git checkout -b new_branch 789abcd # 或 git checkout -b new_branch HEAD~3 很重点 git reflog …...
电阻的额定功率与额定电压详解
一、基本定义 额定功率(Rated Power) 定义:电阻在长期安全工作时允许消耗的最大功率,超过此值可能导致过热甚至烧毁。 公式: P I R 或 P V / R (I:电流,V:电压&#…...
【后端开发】SpringBoot与Spring MVC
文章目录 创建项目目录介绍Spring MVCservletMVCSpring MVCSpringboot与Spring MVC的区别Spring MVC交互 创建项目 新建一个Springboot项目 对应描述 目录介绍 src/main/java:Java 源代码 src/main/resources:为静态资源或配置⽂件: ----…...
如何禁用 PyCharm 的测试功能
如何禁用 PyCharm 的测试功能? PyCharm 的测试功能默认会自动检测项目中符合命名规则的测试文件(如以 test_ 开头的文件)并关联测试框架。若需禁用该功能,可通过以下方法操作: 方法一:全局禁用默认测试框架…...
【Spiffo】光速项目:LVGL v9框架下的MIPI简易相机_Part2
简介 本期接上回的工程部署讲一下整个工程的框架逻辑以及相关的模块作用机制,包括mipi抓图像以及后续传递到显示屏的链路逻辑等。 一、核心逻辑 1、如何抓到图像数据并显示 首先能够从摄像头捕获画面并显示是一个相机最起码要能实现的功能。所以先要搞清楚整个链…...
pycharm编译部署智能合约(solcx与web3搭配)
solcx 是一个 python 库,提供了 solidity 编译器的 python 绑定。它使开发者能够直接从 python 中编译 solidity 源代码,生成以太坊智能合约的字节码(Bytecode)和 ABI(Application Binary Interface)。这个库通常用于与 Web3 库配合使用,帮助开发者进行智能合约的部署、…...
微信小程序中的openid的作用
微信小程序中的openid的作用 引言 在当今数字化时代,用户体验成为了产品成功与否的关键因素之一。微信小程序作为连接用户与服务的重要桥梁,在提升用户体验方面发挥着重要作用。其中, openid(开放身份标识符)是微信小…...
AAAI 2025新研究!大语言模型+MARL=论文新思路?
最新研究显示,多智能体强化学习(MARL)正迎来一系列技术革新,让AI系统真正具备“群体智能”。同济大学团队提出的动态图通信网络(TGCNet),通过Transformer建模智能体间的动态协作关系,…...
旅行世界宠物养殖合成游戏源码
旅行世界宠物养殖合成游戏源码,游戏养成类系统,用户能够通过养狗和参加其他活动获取算力,每日任务不断更新,完结即可收取算力,算力能够兑换现金红包。 邀请好友得两级活跃收益提成,徒弟B100.%,徒…...
列表之链表_C
数据结构(邓俊辉):列表及相关概念_listnodeposi-CSDN博客 #include <stdio.h> #include <stdlib.h>// 定义Rank类型为int typedef int Rank;// 定义ListNode结构体 typedef struct ListNode {int data;struct ListNode* pred;st…...
图解Java设计模式
1、设计模式面试题 2、设计模式的重要性 3、7大设计原则介绍...
CCF GESP Python编程 四级认证真题 2025年3月
Python 四级 2025 年 03 月 题号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 答案 D C B C D C A A D B D A C B C 1 单选题(每题 2 分,共 30 分) 第 1 题 2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是…...
2025最新系统 Git 教程(四)
2.6 Git 基础 - 打标签 打标签 像其他版本控制系统(VCS)一样,Git 可以给仓库历史中的某一个提交打上标签,以示重要。 比较有代表性的是人们会使用这个功能来标记发布结点( v1.0 、 v2.0 等等)。 在本节中…...
数学知识——欧拉函数
欧拉函数 1 ∼ N 1∼N 1∼N 中与 N N N互质的数的个数被称为欧拉函数,记为 ϕ ( N ) \phi(N) ϕ(N)。 欧拉函数 对于 N p 1 α 1 p 2 α 2 p 3 α 3 . . . p k α k Np_1^{\alpha_1}p_2^{\alpha_2}p_3^{\alpha_3}...p_k^{\alpha_k} Np1α1p2α2p3α3…...
Dify 识别 “subject“ and “intention“ 的提示词
Dify 识别 "subject" and "intention" 的提示词 内容如下: You need to decompose the users input into "subject" and "intention" in order to accurately figure out what the users input language actually is. Not…...
Hi168云平台部署Ansible学习环境
前言 之前发布的文章已经介绍过了在Hi168云平台部署openEuler学习环境,那么既然能部署openEuler了,其他的各类学习环境自然也就可以部署了。 Ansible简介 Ansible 是一个运维自动化工具,可以通过 SSH 协议对远程主机进行管理,对…...
Anacond虚拟环境里安装GPU版本Pytorch
CUDA/cudnn/CUDAToolkit简单区分 pytorch与cuda关系简单介绍 pytorch是一个深度学习的框架,能够调用cuda进行gpu加速。一般来说你的电脑里是有相关cuda的驱动的(可用nvidia-smi命令验证,能运行就说明有,不能运行去搜索安装&#…...
FRP的proxies只是建立通道,相当于建立与服务器沟通的不同通道而不是直接将路由器与服务器云端沟通
没有更好的办法了吗,我看frpc.toml的里面可以设置两个proxies那我esp32的监听端口设置在frpc.toml里面它不也能跟云服务器建立联系吗,比如远程与本地端口都配置为5112那云服务器接收到的5112访问会以frp配置的本地端口5112转发到frp客户端的路由器&#…...
Android开发鸿蒙环境问题记录
Android开发鸿蒙环境问题记录 (用于记录开发中鸿蒙环境差异及问题,持续更新) 2025.4.9 问题 使用android.intent.action.TIME_TICK广播时,动态注册在鸿蒙4.0系统正常,但在鸿蒙3.0系统无法接收广播。 解决方案 在An…...
在 WSL2的 Ubuntu 20.04 中安装 Docker
WSL1升级到WSL2参考:WSL1升级到WSL2注意事项-CSDN博客 1. 更新系统包 首先,确保系统包是最新的: sudo apt update sudo apt upgrade -y sudo apt upgrade -y 是 Ubuntu/Debian Linux 系统中的一条命令,用于升级所有已安装的软…...
LeetCode 252 会议室题全解析:Swift 实现 + 场景还原
文章目录 摘要描述题解答案题解代码分析示例测试及结果时间复杂度空间复杂度总结 摘要 在这篇文章中,我们将深入探讨LeetCode第252题“会议室”的问题,提供一个用Swift编写的解决方案,并结合实际场景进行分析。通过这篇文章,你将…...