Docker+Jenkins+Git+GitLab

持续集成环境选择:Jenkins VS gitlab-ci JenkinsJenkins作为老牌的持续集成框架,在这么多年的发展中,积累很多优秀的plugin工具,对进行持续集成工作带来很大的便利。gitlab-cigitlab-ci作为gitlab提供的一个持续集成的套件,完美和gitlab进行集成,gitlab-ci已经集成进gitlab服务器中,在使用的时候只需要安装配置gitlab-runner即可。 gitlab-runner基本上提供了一个可以 阅读详情

本文环境
Docker Version 19.03.11:https://www.cnblogs.com/niceyoo/p/13096181.html

Maven Version 3.3.9:https://www.cnblogs.com/niceyoo/p/13068935.html

JDK Version 1.8.0_181:https://www.cnblogs.com/niceyoo/p/11483139.html

GitLab:https://www.cnblogs.com/niceyoo/p/13057533.html

Jenkins Version 2.222.4:参考本文

通过本文可以了解哪些
通过Docker部署Jenkins
使用Jenkins一键部署Springboot项目
整合GitLab实现上传代码自动部署项目
如下Jenkins安装及配置过程
1、拉取代码
docker pull jenkins/jenkins:lts
在这里插入图片描述
2、创建并启动容器:
在构建的过程,由于我本身CentOS已经安装JDK、Maven了「可以参考上方的安装链接」,所以在这我就直接指定本地环境变量了,当然,如果你不指定的话,安装完Jenkins后还是可以在全局工具配置中修改的:
docker run --name=jenkins --privileged=true
-u root
–rm
-d
-p 8080:8080
-p 50000:50000
-v /var/run/docker.sock:/var/run/docker.sock
-v /usr/bin/docker:/usr/bin/docker
-v $(which docker):/usr/bin/docker
-v /etc/sysconfig/docker:/etc/sysconfig/docker
-v /usr/java/jdk1.8.0_181:/usr/java/jdk1.8.0_181
-v /home/maven/apache-maven-3.3.9:/usr/local/maven
-v /home/maven/repo:/usr/local/maven_repository
-v /home/jenkins-data:/var/jenkins_home
jenkins/jenkins:lts
在这里插入图片描述
启动后在浏览器输入:http://容器ip:8080 访问。

在这里插入图片描述
管理员密码需要我们在log中查询:
docker logs jenkins

在这里插入图片描述
3、安装推荐的插件
输入密码登陆后,会弹出插件安装提示,我们在这选择安装推荐的插件:

在这里插入图片描述
在这里插入图片描述
4、创建管理员账号
安装之后,接下来创建一个账号:
在这里插入图片描述
进行实例地址配置,该地址将作为将来Jenkins的访问地址:

在这里插入图片描述
至此,保存并完成,会重启Jenkins,然后我们可以通过刚刚创建的账户登录「使用管理员root也可以」:

在这里插入图片描述
5、Maven配置修改
之前我们创建容器时复用了本地宿主机的Maven环境变量,但是安装完Jenkins后还是要指定一下Maven目录的,依次进入:系统管理 > 全局工具配置
在这里插入图片描述
首先是顶部的Maven,我们选择文件系统中的setting文件,文件路径使用创建容器时指定的Maven路径 usr/local/maven:
/usr/local/maven/conf/settings.xml
在这里插入图片描述
然后拉到最下边Maven节点,点击新增Maven,起一个名字,然后指定maven路径,去掉自动安装的选项,然后应用>保存:

在这里插入图片描述
6、新建一个任务
在这里插入图片描述
点击确定之后会跳入配置界面,接下来就是配置我们的自动化操作,首先是配置项目的拉取地址,在这我是基于Gitlab的,关于Gitlab的搭建可以参考这篇:https://www.cnblogs.com/niceyoo/p/13057533.html
在这里插入图片描述
点击添加GitLab的账户密码,不添加时会报红,是没法在GitLab中拉取代码的:

在这里插入图片描述
在这里插入图片描述
#!/bin/bash
result= ( d o c k e r p s ∣ g r e p " 10.211.55.4 : 5000 / n i c e y o o − d e m o " ) i f [ [ " (docker ps | grep "10.211.55.4:5000/niceyoo-demo") if [[ " (dockerps∣grep"10.211.55.4:5000/niceyoo−demo")if[["result" != “” ]]
then
echo “stop niceyoo-demo”
docker stop niceyoo-demo
fi
result1= ( d o c k e r p s − a ∣ g r e p " 10.211.55.4 : 5000 / n i c e y o o − d e m o " ) i f [ [ " (docker ps -a | grep "10.211.55.4:5000/niceyoo-demo") if [[ " (dockerps−a∣grep"10.211.55.4:5000/niceyoo−demo")if[["result1" != “” ]]
then
echo “rm niceyoo-demo”
docker rm niceyoo-demo
fi
result2= ( d o c k e r i m a g e s ∣ g r e p " 10.211.55.4 : 5000 / n i c e y o o − d e m o " ) i f [ [ " (docker images | grep "10.211.55.4:5000/niceyoo-demo") if [[ " (dockerimages∣grep"10.211.55.4:5000/niceyoo−demo")if[["result2" != “” ]]
then
echo “10.211.55.4:5000/niceyoo-demo:latest”
docker rmi 10.211.55.4:5000/niceyoo-demo:latest
fi

个地方解释一下为啥要用到shel脚本,这个脚本有两个操作,首先是通过 docker ps | grep "10.211.55.4:5000/niceyoo-demo"查询是否存在容器,如果存在的话则stop停止容器,然后再rm删除容器,第二步是通过 docker ps -a | grep "10.211.55.4:5000/niceyoo-demo"查看是否存在该镜像,如果存在则 rmi 删除该镜像,为啥要删除镜像+容器?其实这样是帮助我们把每次自动化构建镜像、容器之前都把旧的给删除掉。

“10.211.55.4:5000/niceyoo-demo” 是我项目打包后的镜像名称,组成规则为:镜像地址/项目名称
在这里插入图片描述
然后添加Maven指令,用于构建项目,简单说一下这个地方,我在项目的 pom.xml,文件中使用了 docker-maven-plugin 插件,同时替换了 mvn pavkage 指令,当每次执行该命令时就会自动提交至Docker远程私有仓库中,「如果在本地执行测试的话需要开启Docker远程访问前提,具体配置可参考该链接:https://www.cnblogs.com/niceyoo/p/13270224.html」,私有仓库是基于Docker+Registry搭建的,关于Registry的搭建可以参考这篇:https://www.cnblogs.com/niceyoo/p/13058238.html
在这里插入图片描述
clean package
如下是SpringBoot项目 pom.xml 文件中的插件编写,已经把注释写的很清楚了:

build>


org.springframework.boot
spring-boot-maven-plugin


com.spotify
docker-maven-plugin
1.0.0


10.211.55.4:5000/ p r o j e c t . a r t i f a c t I d < / i m a g e N a m e > < ! − − 指 定 d o c k e r f i l e 路 径 − − > < ! − − < d o c k e r D i r e c t o r y > {project.artifactId}</imageName> <!--指定dockerfile路径--> <!--<dockerDirectory> project.artifactId</imageName><!−−指定dockerfile路径−−><!−−<dockerDirectory>{project.basedir}/src/main/resources–>


latest


10.211.55.4:5000
true

java

niceyoo apkdream@163.com

/ROOT
[“java”,"-version"]
[“java”,"-jar"," p r o j e c t . b u i l d . f i n a l N a m e . j a r " ] < / e n t r y P o i n t > < ! − − 指 定 远 程 d o c k e r 地 址 − − > < d o c k e r H o s t > h t t p : / / 10.211.55.4 : 2375 < / d o c k e r H o s t > < ! − − 这 里 是 复 制 j a r 包 到 d o c k e r 容 器 指 定 目 录 配 置 − − > < r e s o u r c e s > < r e s o u r c e > < t a r g e t P a t h > / R O O T < / t a r g e t P a t h > < ! − − 指 定 需 要 复 制 的 根 目 录 , {project.build.finalName}.jar"]</entryPoint> <!--指定远程docker地址--> <dockerHost>http://10.211.55.4:2375</dockerHost> <!--这里是复制jar包到docker容器指定目录配置--> <resources> <resource> <targetPath>/ROOT</targetPath> <!--指定需要复制的根目录, project.build.finalName.jar"]</entryPoint><!−−指定远程docker地址−−><dockerHost>http://10.211.55.4:2375</dockerHost><!−−这里是复制jar包到docker容器指定目录配置−−><resources><resource><targetPath>/ROOT</targetPath><!−−指定需要复制的根目录,{project.build.directory}表示target目录–>
p r o j e c t . b u i l d . d i r e c t o r y < / d i r e c t o r y > < ! − − 用 于 指 定 需 要 复 制 的 文 件 , {project.build.directory}</directory> <!--用于指定需要复制的文件, project.build.directory</directory><!−−用于指定需要复制的文件,{project.build.finalName}.jar表示打包后的jar包文件–>
${project.build.finalName}.jar






build-image
package

build






在这里插入图片描述
docker run --rm -d -p 9999:9999 --name niceyoo-demo 10.211.55.4:5000/niceyoo-demo
部分参数解释:在这我用的 -p 9999 端口,–nama 后面指向的是重命名后的容器名称 niceyoo-demo + 镜像的名称 10.211.55.4:5000/niceyoo-demo,接下来就是应用+保存了:
在这里插入图片描述

用FSL的eddy_topup pipeline完整处理DTI数据:从原理到实战,搞定涡流和磁化率畸变 本文详细介绍了如何使用FSL的eddy_topup pipeline完整处理DTI数据,解决涡流和磁化率畸变问题。从原理到实战,涵盖了数据格式转换、脑提取、b0图像处理等关键步骤,并提供了acqparams.txt配置和eddy命令的详细解析,帮助研究人员高效完成DTI数据校正。 阅读详情

相关推荐

raw_count、tpm、fpkm、rpkm如何选择

转录组测序中常见的数据类型有:raw_count、tpm、fpkm、rpkm。本文进行简单辨析: 一、概念 1 raw_count RNA-seq数据中,raw_count一般是指mapped到基因外显子区域的reads数目。比如说htseq,STAR,或者RSEM等NGS分析流程计算产生的counts值。其中RSEM(RNA-Seq by Expectation-Maximization),考虑到一条read 可能会匹配多个exon位置,故而其产生的为expected_count。 2 TPM

weixin_59289660的博客 1万+

实战Docker+Jenkins+Git+Registry构建持续集成环境

关于jenkins的文章比较多,笔者决定写一篇比较详细的利用容器来构建jenkins+git+registry的文章来和大家共同讨论。文章比较长,需要有点耐心慢慢看完,如果大家在实验的过程中遇到问题,可以留言一起讨论或者加我QQ一起讨论都行。 本文重点介绍jenkins以及jenkins如何在docker容器中运行,jenkins和docker私有仓库又是怎么玩的。docker说明、安装和git说明、安装在本文中不会特别详细的介绍。 并且,在本文中不着重介绍原理性的东西,比如不会介绍什么是持续集成.

IChen.的博客 2417

双通道中频信号数字下变频及相位差估计(FPGA)

双通道中频信号数字下变频及相位差估计实验 一、上框图(通俗易懂) 二、实验要求 1、 用点频信号模拟中频信号:中频信号由DDS1和DDS2产生。具体产生方法见第2点。 2、 DDS1和 DDS2:调用IPcore里的数字信号处理中的NCO模块,工作时钟为100MHz,数据率即为100MHz,DDS1和DDS2的频率为:(学号后三位+500)Khz+f0(可设为20MHz);输出为16位;DDS1...

qq_39809425的博客 6948

手摸手教你 docker+jenkins+gitlab 部署你的前端项目

学习了一周的CICD,踩了很多坑,都是泪,特此记录一下整个过程,本次项目产出效果是,git push的时候自动化直接部署到服务器上,以下是整个大致流程:你所需要准备的:docker最基本的知识,并安装docker和docker-composelinux最基本命令,知道私钥公钥生成使用过git工具你的前端项目npm run build 成功你需要一台 ram>1G的linux服务器基本应变能力,排查bug能力(1). 创建一个docker-compose.yml文件,放到/home/work/文件夹下(可自定

1234

VMD-CNN-BiLSTM-Attention预测模型 —— 数学模型介绍&完整实例代码

想解决电力负荷预测中的非线性、非平稳难题?这篇博客介绍了一种创新混合模型,结合变分模态分解(VMD)和CNN-BiLSTM-Attention深度学习架构,实现超高精度预测! ✨ 核心亮点: ✅ VMD分解:有效分离复杂负荷信号,提取关键频率特征 ✅ 混合深度学习:CNN捕捉局部模式 + BiLSTM学习长时序依赖 + 注意力机制聚焦关键时段 ✅ 端到端优化:从数据预处理(滑动窗口、归一化)到模型训练(MSE损失+Adam优化),完整流程公开! ✅ 工业级评估:提供MSE、MAE、MAPE、R²多指标验证

qq_42924330的博客 1657

基于ThingsBoard+ESP8266的MQTT远程控制实战:从设备接入到仪表盘交互

本文详细介绍了基于开源物联网平台ThingsBoard与ESP8266开发板,通过MQTT协议实现远程控制的完整实战流程。从环境搭建、设备创建、仪表盘设计到核心代码编写与联调,手把手指导完成从云端到硬端的物联网闭环,为智能家居与物联网原型开发提供低成本、高效率的解决方案。

weixin_29192365的博客 334

基于 Jenkins+Docker+Git 的CI流程初探

在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要。目前已经形成一套标准的流程,最重要的组成部分就是持续集成(Continuous Integration,CI)及持续部署、交付(CD)。在此,我们来以一个案例初步了解 CI 流程。那么什么是 CI 呢?简单来讲,CI 就是将传统的代码合并、构建、部署、测试都集成在一起,不断地执行这个过程,并对结果进行反馈。 CI ...

weixin_30732487的博客 332

菜鸟-需求预测与分仓规划

通过修改模型的损失函数对问题进行求解,比其它单模型的效果好很多。

永不理解_fdu的博客 4882

Docker、Jenkins、Git 自动化部署 SpringBoot 项目(从零到搭建完成)

虚拟机相关环境安装可以查考我的这篇文章:https://blog.youkuaiyun.com/wuhuayangs/article/details/125295937?spm=1001.2014.3001.5501安装 Docker 之前查看是否已经安装,可以卸载重新安装。1、列出当前 Docker 相关的安装包 2、如果已经存在,则卸载对应的包 3、最后删除 Docker 目录 安装 Docker 1、检查环境 在 CentOS 7 安装 Docker 要求系统为64位、系统内核版本为 3.10 以上,可以使用以下

养歌的博客 4031

Inventor插件开发入门:从零开始创建一个简单的记事本调用插件

本文详细介绍了如何从零开始开发一个Autodesk Inventor插件,实现记事本调用功能。内容涵盖SDK环境搭建、插件项目创建、代码实现、部署调试等关键步骤,并提供了功能区按钮集成、错误处理等进阶技巧,帮助开发者快速掌握Inventor插件开发的核心流程。

convnet3designer的博客 238

超导电动悬浮系统一体化地面线圈电-热-力特性研究——基于ANSYS Maxwell与Workbench的多物理场联合仿真

摘要:超导电动悬浮(EDS)系统的地面线圈在运行中面临电-热-力多物理场强耦合挑战。本文基于ANSYS Maxwell和Workbench平台,提出一套联合仿真方法,对地面线圈进行高保真多物理场耦合分析。研究通过建立参数化三维电磁模型,计算瞬态涡流损耗和电磁力分布,并顺序耦合至热分析和结构分析,揭示电-热-力特性的相互影响机制。该方法为地面线圈的优化设计、材料选型和可靠性评估提供了理论依据和仿真工具支撑。 关键词:超导电动悬浮;地面线圈;多物理场耦合;联合仿真;ANSYS

huanghm88的专栏 376

使用 Docker Compose 搭建最新版 Jenkins,配置 Git 并拉取 GitLab 代码

使用 Docker 搭建最新版 Jenkins,配置 Git 并拉取 GitLab 代码

只有做与不做 没有想与不想 2411

基于深度学习的图像识别技术在农业领域中的应用

是识别"病害种类"还是"病害严重度分级"?前者是分类,后者常需分割或分级回归。是叶片级(离体叶片图像)、植株级(田间单株)、地块级(无人机俯拍)?视角不同,模型差异巨大。实时无人机巡检可能要求 < 50 ms/帧(Jetson Orin),而离线测报可接受秒级推理。类别标签、结构化 JSON、GIS 图斑、报警事件?

AI天才研究院 2174

docker 安装gitlab jenkins git maven

#192.168.40.17 是gitlab的宿主机ip,224是容器gitlab映射的端口 host是一个别名,因为我gitlab配置的时候 加了一个--hostname 192.168.40.17。[root@test-01 ~]# git config --global user.email "gitlab用户的邮箱"[root@test-01 ~]# git config --global user.email "gitlab管理员邮箱"下面是宿主机的公钥和容器的公钥,因为做了挂载所以可以同步。

m0_52454621的博客 744

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

git与github,gitlab,jenkins,pycharm,docker

git与github,gitee,gitlab的关系 git是上传代码的客户端。 github,gitee,gitlab都是服务端 github是国外最大的开源项目的服务端 gitee是国内的代码托管服务器 gitlab可以在公司内部搭建公司私有的代码托管服务器,gitlab本质上也是一个web网站,所以,可以使用docker机型搭建。 git还可以与各种IDE进行结合使用,比如python的IDE Pycharm。 git还可以与jenkins结合使用。 所以公司可以采用这样的架构 git(上传代码的客户

weixin_43501172的博客 385

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

git常用命令 | 搭建github仓库 | gitlab的基本使用方法 | jenkins的安装与gitlab的应用 | 一步一步构建jenkins+gitlab+docker综合项目

GIT常用命令和搭建GITHUB仓库 关于git的介绍推荐 https://www.liaoxuefeng.com/ 简单通俗易懂 git的中文详细介绍 https://git-scm.com/book/zh/v2 官方权威深入 几个简单的git命令 1,命令行初始化git [root@foundation28 ~]# mkdir demo [root@foundation28 ~]...

Minz 1160

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

docker-compose编排,gitlab安装和授权,git使用和jenkins安装和使用

一,基于docker-compose实现对nginx+tomcat web服务的单机编排。 二,安装gitlab,创建group、user和project并授权 三, 熟练git命令的基本使用,通过git命令实现源代码的clone、push等基本操作 四,熟练掌握对gitlab服务的数据备份与恢复 五,部署jenkins服务器并安装gitlab插件、实现代码免秘钥clone

weixin_42896216的博客 1772

Docker+Jenkins+Git+GitLab实现DevOps

先了解一下Jenkins Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,提供了数百个插件来支持构建,部署和自动化任何项目。我们可以使用Jenkins结合常用的版本控制工具(git、svn等)来实现自动部署项目,比如说我们从本地上传代码到Gitlab代码仓库,Jenkins就会帮我们自动同步代码,然后经编译打包之后推送至远程Docker仓库,再之后我们通过服务器从远程Docker仓库拉取镜像、创建及启动容器,然后就可以通过浏览器访问了,整个过程几乎都是自动完成的,而我们只需要上传代码就可

niceyoo的博客 643

[团队协作发 + 自动化部署 Git + Gitlab + Jenkins + K8S + Docker]之三:Git进阶编

文档地址:https://download.youkuaiyun.com/download/panpan2018/10329739下期更新至:[团队协作发 + 自动化部署 Git + Gitlab + Jenkins + K8S + Docker]之四:Git高级编

尚方栩的博客 4464

CentOS7部署常用(JDK/maven/swap虚拟内存/git/密钥对/docker/jenkins/gitlab)

1.需要卸载自带openjdk,因缺少部分jar包,后期有兼容性问题 例: rpm -qa | grep java rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64 rpm -e --nodeps xxxxx java -version noarch文件可以不用删除 2.安装Oracle JDK http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downlo

之一的博客 658

git+gitlab+jenkins+docker构建持续集成环境

[root@server2 docker1]# rm -f docker-ce-18.03.1.ce-1.el7.centos.x86_64.rpm docker-ce-18.09.5-3.el7.x86_64.rpm containerd.io-1.2.5-3.1.el7.x86_64.rpm docker-ce-cli-18.09.5-3.el7.x86_64.rpm [root@server...

zcx1203的博客 913

Linux企业运维篇——git+gitlab+jenkins+docker构成持续集成环境

一.GitLab与jenkins Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 两者结合起来,就可以实现开发者提交代码到GitLab,Jenkins以一定频率自动运行测试、构建和部...

weixin_44321116的博客 1830

基于jenkins+gitlab+docker部署zabbix

我现在已经在一台服务器上部署了jenkins和gitlab,现在有一个场景是需要在服务器上再部署一个zabbix,需要通过jenkins加上gitlab部署,并且要求zabbix是通过docker部署的。

二狗子的博客 1536

Git+Docker+Jenkins自动化工作流实战与优化

在DevOps实践中,持续集成与持续部署(CI/CD)是现代软件开发的核心环节。通过Git进行版本控制、Docker实现环境容器化、Jenkins构建自动化流水线,可以显著提升开发效率与系统可靠性。这套技术组合解决了跨团队协作中的环境一致性、构建标准化等痛点,特别适用于分布式开发场景。本文以真实项目为例,详细解析如何构建高可用CI/CD系统,包含GitLab配置优化、Docker多阶段构建、Jenkins流水线设计等实用技巧,并分享网络优化、安全加固等工程实践经验。其中通过容器化方案将环境部署时间从4小时缩

weixin_30878501的博客 395

(真正)解决jenkins中连接gitlab问题

1. 问题描述 很多小白朋友在搞自动化部署时,应该很大可能会遇到docker中的jenkins容器连接不上gitlab问题。解决方法如下。 (1)检查你的liunx服务器是否安装了git工具,没有的话就安装如下: 安装 yum install -y git 查看版本 git version (2)配置一下git a、设置用户名: git config -- global user.name '你再githlab上注册的用户名'; b、设置用户邮箱: git config -- global

weixin_41708020的博客 4945

GitLab+Jenkins+Maven+Docker实现自动集成、打包、部署

目录⭐自动集成流程:流程图:环境准备Java环境安装Git工具安装Maven工具安装GitLab代码管理仓库安装Jenkins自动集成工具安装Docker安装三台服务器进行免密登录GitLab+Jenkins+Maven+Docker整合Gitlab创建一个新的项目GitLab部署SSH密钥Jenkins创建任务生成测试项目成功发布到docker主机上编写自动部署脚本 自动集成流程: 1. 开发人员将代码上传到Gitlab代码管理平台 2. 创建jenkins自动化任务,安装maven、gitlab we

小啊宇的博客 2815
上一篇: Docker 安装 Registry私服详解
下一篇: docker安装sonar第一步拉取postgresql镜像时报错
yonhu123java
博客等级 码龄14年 6粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值