使用Docker安装Drone和Gogs实现自动化部署

docker搭建gogs 使用Docker搭建Gogs,可以使用Docker CLI或Docker Compose两种方式。下面详细介绍这两种方法,并解释每个参数的作用和注意事项。/path/to/gogs/data应该替换为实际的本地路径,用于持久化Gogs的数据。/path/to/gogs/data应该替换为实际的本地路径,用于持久化Gogs的数据。Docker Compose需要提前安装并在项目目录下执行。需要确保主机上的10300端口没有被占用。需要确保主机上的10300端口没有被占用。 阅读详情

1 基本介绍

1.1 Drone简介

Drone是基于GO语言开发的持续集成(Continuous integration,CI)引擎,它可以借助Docker容器技术,用于自动化测试与构建,满足持续交付的基本需求,适合小团队开发。Drone具有简洁、轻量级、启动快、资源占用等特点。 Jenkins也是CI引擎,它的特点是文档丰富、功能丰富、插件丰富、配置功能强大等特点,但资源占用较高。Drone比Jenkins轻量级,对云原生支持较好。

# 官方网址:
https://www.drone.io/

1.2 Gogs简介

Gogs是基于GO语言开发的代码仓库管理系统。它可以借助Docker容器技术,为开发人员提供Git服务,适合小团队开发。Gogs具有最简单、最快速和最轻松的极易搭建Git服务的特点。GitLab也是代码仓库管理系统,它的具有功能强大、开源社区庞大、文档丰富等特点,但资源占用较高,维护成本较高。Gogs比GitLab轻量级,对云原生支持较好,且是国人开发。

# 官方网址:
https://gogs.io/

1.3 实现自动化部署的方案

针对大型团队推荐使用Gitlab+Jenkins,小团队推荐使用Gogs+Drone。

使用的软件版本(如果版本太高会出现很多问题):

Docker版本:18.09.6
gogs版本:0.12.0
Drone版本:2.6.0
drone-runner-docker版本:1.4.0

2 Docker安装Gogs

2.1 安装Gogs

# 下载Gogs镜像
docker pull gogs/gogs:0.12.0

# 安装Gogs容器
# 对外映射的端口是12022和13000,目录是/home/gogs/data
# 22是ssh端口,3000是web访问端口
docker run -itd \
--name=gogs \
--restart=always \
--privileged \
-p 12022:22 \
-p 13000:3000 \
-v /home/gogs/data:/data \
gogs/gogs:0.12.0

2.2 配置Gogs

# 在浏览器中输入以下IP地址,进入配置页面
http://192.168.108.200:13000/

详细配置如下

在这里插入图片描述

2.3 使用Gogs

(1)创建仓库

在这里插入图片描述

(2)创建完成的信息

在这里插入图片描述
注意:仓库创建完成后,创建一个Spring Boot的test测试项目,并提交到test仓库中。

3 Docker安装Drone

3.1 安装Drone-server

# 下载Drone-server镜像
docker pull drone/drone:2.6.0

# 安装Drone-server和配置gogs的参考文档
https://docs.drone.io/server/provider/gogs/

# 安装容器
# 注意:不同的仓库有不同的配置参数,gitlab和gogs的配置参数不同
# 参数说明:
# DRONE_AGENTS_ENABLED: 启动代理;
# DRONE_GOGS_SERVER: Gogs的Web服务地址;
# DRONE_SERVER_HOST: Drone Server的Web服务地址;
# DRONE_SERVER_PROTO: Drone Server的Web访问协议;
# DRONE_USER_CREATE: Drone Server的管理员账号,尽量与Gogs的管理员账号一直,一定要配置;
# DRONE_RPC_SECRET: Drone Server的共享秘钥,为Drone runner提供RPC提供远程过程调用;
docker run -itd \
--env=DRONE_AGENTS_ENABLED=true \
--env=DRONE_GOGS_SERVER=http://192.168.108.200:13000 \
--env=DRONE_SERVER_PROTO=http \
--env=DRONE_SERVER_HOST=192.168.108.200:20080 \
--env=DRONE_USER_CREATE=username:administrator,admin:true \
--env=DRONE_RPC_SECRET=123456 \
--name=drone-server \
--restart=always \
-p 20080:80 \
-v /home/drone/server/data:/data \
drone/drone:2.6.0

3.2 安装Drone-runner-docker

# 下载Drone-runner-docker镜像
docker pull drone/drone-runner-docker:1.4.0

# 安装Drone-runner-docker的参考文档
https://docs.drone.io/runner/docker/installation/linux/

# 创建容器
# 参数说明:
# DRONE_RPC_PROTO: 连接到Drone server的Web访问协议;
# DRONE_RPC_HOST:  Drone Server的Web服务地址;
# DRONE_RPC_SECRET: Drone Server的共享秘钥;
# DRONE_RUNNER_CAPACITY: Drone runner流水线并发执行的任务量;
# DRONE_RUNNER_NAME: Drone runner的名称;
# 注意:映射目录必须这样写“/var/run/docker.sock:/var/run/docker.sock”
docker run -itd \
--env=DRONE_RPC_PROTO=http \
--env=DRONE_RPC_HOST=192.168.108.200:20080 \
--env=DRONE_RPC_SECRET=123456 \
--env=DRONE_RUNNER_CAPACITY=2 \
--env=DRONE_RUNNER_NAME=drone-runner-line \
--name=drone-runner \
--restart=always \
-p 23000:3000 \
-v /var/run/docker.sock:/var/run/docker.sock \
drone/drone-runner-docker:1.4.0

查看Drone-runer是否安装成功

docker logs -f drone-runner

在这里插入图片描述

3.3 配置Drone

(1)登录Drone

# 在浏览器中输入以下IP地址
http://192.168.108.200:20080/

在这里插入图片描述

(2)配置drone

点击“continue”

在这里插入图片描述

在这里插入图片描述

(3)进入drone

在这里插入图片描述

4 配置Drone和Gogs的连接

4.1 在Gogs中配置test仓库的”.drone.yml“文件

# 官网不同语言的配置例子
https://docs.drone.io/pipeline/docker/examples/

(1)在Gogs的test仓库中创建”.drone.yml“文件

在这里插入图片描述

⚠️ 注意:

  1. 我部署的drone和应用在同一台主机上,因此使用appleboy/drone-ssh作脚本控制即可。如果部署的drone和应用在不同的主机上,可以使用appleboy/drone-scp作远程复制,即将drone上的内容复制到应用所在的主机上,使用方法参见https://plugins.drone.io/plugins/scp。
  2. drone中的pipeline表示管道,使用drone/git从仓库上下载完数据后,流程线中的容器可以认为是操作同一个容器中的数据。

”.drone.yml“文件编辑的内容如下:

kind: pipeline
type: docker
name: test-pipeline

# 关闭自动设置Git镜像
# 此处可以不设置,将获取最新的git镜像
clone:
  disable: true

steps:
# 设置Git镜像版本,下载仓库文件
# 如果上面没有设置clone,此处需要删除(如果不删除,在pipeline中将多一个clone,pipeline会出错)
- name: clone
  image: drone/git:1.2.1

# 构建和编译Java项目
- name: test-build
  image: maven:3.8.4
  volumes:
    # Maven缓存目录
    - name: mvn-cache
      path: /root/.m2

  # 在Docker容器内执行的命令
  commands:
    - mvn clean install

# 发布项目
- name: test-deploy
  image: appleboy/drone-ssh:1.6.4
  settings:
    # 部署主机的IP  
    host: 192.168.108.200
    # 部署主机的登录账号,需从Drone中获取密钥名ssh_user的值,创建方式见下面
    username:
      from_secret: ssh_user
    # 部署主机的登录密码,需从Drone中获取密钥名ssh_pwd的值,创建方式见下面
    password:
      from_secret: ssh_pwd
    # 端口号
    port: 22
    # 设置超时
    command_timeout: 10m
    # 编写脚本,可根据具体情况编写
    script:
      # 进入宿主机的“/home/app”目录(注意:先在宿主机上创建app目录)
      - cd /home/app
      # 删除jar包,我测试的工程名是test
      # - rm -rf test.0.0.1-SNAPSHOT.jar
      # 将编译后的jar包复制到"/home/app"下
      - cp /home/mvn/.m2/repository/com/example/test/0.0.1-SNAPSHOT/test-0.0.1-SNAPSHOT.jar .
      # 执行"/home/app"下的脚本(注意:需要在“/home/app”目录下创建start.sh文件)
      # - sh start.sh

# 挂载宿主机目录,对应"test-build"的Maven容器的目录
volumes:
  - name: mvn-cache
    host:
      path: /home/mvn/.m2

# 对应Gogs仓库分支
trigger:
  branch:
    - master

(2)在Drone中设置宿主机的登录账号和密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.2 在Drone中配置Gogs的test仓库

(1)进入test仓库配置

在这里插入图片描述

(2)激活仓库

在这里插入图片描述

(3)配置仓库

在这里插入图片描述

4.3 测试项目

(1)配置Web钩子
注意:需要在Drone中配置完test仓库后,才会出现Web钩子的地址,否则地址为空。
点击”管理Web钩子“,按照如下配置,推送到Drone Server

在这里插入图片描述

测试主动推送

在这里插入图片描述

(2)测试推送出现的问题

(1)出现“Payload URL resolved to a local network address that is implicitly blocked.”,或者“推送URL被解析到默认禁用的本地网络地址”,如下:

在这里插入图片描述

解决方法:
方法1: 最好的办法是建议降低gogs版本;
方法2: 修改Gogs容器中“/data/gogs/conf”目录下的“app.ini”文件

# 在“security”下添加“LOCAL_NETWORK_ALLOWLIST”属性,设置为本地IP地址,如果是多个IP用逗号分开
[security]
LOCAL_NETWORK_ALLOWLIST = 192.168.108.200

在这里插入图片描述

(2)Drone Server中出现“Error response from daemon: client version 1.40 is too new. Maximum supported API version is 1.39”,如下:

在这里插入图片描述

解决方法:

方法1: 降低drone-runner-docker版本;
方法2: 升级Docker版本(我刚开始使用Docker版本比较低,所以出现以上错误);

 # Centos7中升级指定版本的docker
 yum install docker-ce-20.10.0-3.el7

4.4 查看部署状态

(1)在Gogs中查看

在这里插入图片描述

(2)在Drone Server中查看

仓库的推送历史记录
在这里插入图片描述

Drone部署的执行过程如下:

在这里插入图片描述

发布完成
在这里插入图片描述
在我的宿主机的“/home/app”目录下,已经生成了test-0.0.1-SNAPSHOT.jar文件
在这里插入图片描述

gogs安装与说明(docker) 前言: 作为一个开发,少不了和git打交道,像github,gitee是很流行的git线上托管平台,而我们也搭建自己的git托管平台,有条件的可以使用gitlab,它对硬件有要求,像博主这种没条件用虚拟机的,推荐使用gogs。   Gogs 的是一个由 Go 语言开发的、可以简单、快速搭建自助 Git 服务。在宿主机上的安装可以参考官网:Installation - Gogs。   不过在宿主机上直接安装会麻烦一点,需要自行安装git工具,如果使用ssh还要安装ssh服务器,如果使用源码安装,还可能. 阅读详情

相关推荐

使用Docker安装Gogs

【代码】使用Docker安装Gogs。

janthinasnail的博客 1493

docker创建gogs容器

Gogs是基于Go语言编写的可以替代gitlab的代码托管平台,它没有gitlab那么庞大且不需要占用大量资源,对小型服务器相对于比较友好,我们甚至可以使用树莓派搭建。gogs要求:如果您使用 MySQL,请使用 INNODB 引擎以及 utf8_general_ci 字符集。安装完毕后可以通过ip:3000去访问gogs容器的首次安装页面。如果不配置管理员也可以在安装完毕后,第一个注册用户即是管理员。以上参数配置完毕后,点击 立即安装 即可。小码哥在这里设置管理员账号、密码和邮箱。

liqinglonguo的博客 1000

超轻量级自动化部署神器Drone配合Gogs安装详细教程(图文教程)

前言 现在我们在日常开发或者生产环境中,往往会经常弄一套自动化部署方案来节约时间成本。现在比较流行的一种就是Gitlab+Jenkins实现方案,但是这种方案占用内存还是比较大,需要的服务器内存也得8G左右,不然很难流畅运行,而且部署起来也不快。最近小翔发现了一款神器 Drone ,轻量级的CI/CD工具,我拿来结合 Gogs 使用所消耗的内存占用都不到1G,这里就给大家聊聊这款工具。 Drone简介 Drone是一款基于go编写的容器技术持续集成工具,可以直接使用YAML配置文件即可完成自动化构建、测试、

小翔 6945

私有仓库Gogs搭建(docker环境)

Gogs:开源的、轻量级的Git服务,类似于GitHub、GitLab等代码托管平台。它是用Go语言开发的,因此得名Gogs(Go Git Service)。Gogs的设计目标是简单、易于安装和使用,适合小型团队或个人开发者使用。

缘友一世的博客 2340

drone、gogs、docker与项目集成实现自动化部署

测试环境频繁的部署,既浪费时间又没有什么技术含量,在项目模块多的时候,部署一次要花半小时的时间,每天都要部署测试,时间长了浪费的时间还是挺多的,人为部署有时候还可能误操作。基于种种原因,萌生了自动打包测试工具drone,drone与gogs还有docker完美结合,实现自动打包,自动部署非常完美,现在让我们来感受一下吧!

liqinglonguo的博客 1650

Drone+Gogs+docker搭建轻量CICD

1.背景 Drone是一个持续集成和持续交付的平台,可以与Docker完美集成。相对于Jenkins来说更加轻量,可以配合轻量的Gogs来实现持续集成。 为什么选择Drone而不是Jenkins,为什么选择Gogs而不是gitlab,主要原因是因为更轻量,简洁,更适合自己研究或者小型企业项目(PS:当然也有一部分原因是博主的服务器资源有限,但又想强行玩CICD,哈哈。。。) 话不多说,下面开始操作: 2.Gogs部署 pull镜像: docker pull gogs/gogs 部署服务:

weixin_42798722的博客 1829

SpringBoot项目使用Docker+Drone+Gogs实现自动化部署

本文介绍了基于Gogs+Drone实现SpringBoot项目自动化部署的完整方案。主要内容包括:1)环境搭建,使用Docker部署Gogs代码仓库和Drone持续集成平台;2)配置流程,通过.drone.yml文件定义构建、测试、部署流水线;3)实战演示,将SpringBoot项目提交到Gogs后触发自动构建和部署。方案采用轻量级工具组合,适合小型团队实现CI/CD,最终成功部署并验证了测试项目。文中详细提供了各组件版本、配置参数和操作步骤,可作为自动化部署的参考实现。

m0_62903123的博客 1406

Gogs+Drone搭建CI/CD平台过程

Gogs 是由 Go 语言编写的 Git 服务器,由中国人主导开发的一款开源项目,搭建方便并且拥有完善的中文文档,配合 Drone 可以实现持续集成/持续部署。本文介绍如何通过 Docker 搭建 Gogs+Drone 环境。 环境 MacOS Docker && docker-compose 部署 创建目录(不是必须的,可以放在任何目录里面) mkdir cicd cd cicd mkdir gogs drone # 存放相关数据 编写 docker-compose.yaml

qq_15273019的博客 1459

配置drone+docker+gogs+nodejs项目自动发布

最近学习了一下自动化部署相关的技术,记录一下自己的学习历程。 去年的时候腾讯云服务器搞活动,于是购买了一台云服务器用于学习。自己毕业后在第一家公司工作时,一直感觉项目上线是一件很头疼的事情,当时是采用pm2+nodejs的方式,项目上线就是登录到服务器上,手动替换js文件,然后用pm2重启进程。由于当时部门之间分工不明确,我作为开发有时候也要负责项目上线,经常每天晚上11点在家加班,那时候感觉还是挺痛苦的,于是感觉自动化部署是很有必要的。 自己学习的时候,也是锁定了两款自动化部署工具:jenkins、d

心本逍遥灬 2248

基于Drone+Gogs流水线-全面认识轻量级云原生CI引擎Drone

1. 介绍 Drone by Harness™ 是一个基于Docker容器技术的可扩展的持续集成引擎,用于自动化测试、构建、发布。每个构建都在一个临时的Docker容器中执行,使开发人员能够完全控制其构建环境并保证隔离。开发者只需在项目中包含 .drone.yml文件,将代码推送到 git 仓库,Drone就能够自动化的进行编译、测试、发布。可以与Docker完美集成。 docs.drone.io/ 特点 Drone引入了Pipelnes的概念,管道可帮助我们自动化软件交付过程中的步骤,例如启动代码构建

DevOps在路上|专注于团队研发效能,欢迎来到我的博客,这里有来自一线DevOps实践者的知识分享 2318

PaddleOCR转ONNX模型实战:5分钟搞定中文OCR推理部署(附完整代码)

本文详细介绍了将PaddleOCR模型转换为ONNX格式并进行高效推理部署的完整实战方案。通过Paddle2ONNX工具实现模型转换,利用ONNX Runtime构建跨平台推理引擎,涵盖环境配置、模型优化、批量处理及多平台部署等关键步骤,显著提升中文OCR在边缘设备上的推理性能。

weixin_29051811的博客 616

gogs创建项目_使用drone和gogs搭建自己的CI/CD系统

drone是一个基于容器的本地持续交付平台,和Jenkins是差不多的,然后配合轻量级的gogs来作为git管理,都是基于golang开发的很符合我的需求,我们来把它们结合作为一个完整的CI、CD平台。首先我们要先安装docker,上次的篇幅我们已经说过了我就不赘述了。需要的东西有:linux,docker,docker-compose,drone,gogs,git等。安装gogs和drone配合...

weixin_39533307的博客 373

基于STM32的Modbus TCP多主站数据监测

Modbus TCP通信协议在STM32上实现,STM32作为服务器采集内部传感器数据,并通过ADC进行转换,存入寄存器。两个PC机作为客户端访问服务器,服务器通过Socket通信实现监听连接,将数据发送给客户端。

hyp12347的博客 4294

使用更快的CI/CD组合Gogs+Drone,带你爬坑

为什么使用Drone 为了达到持续集成和持续交付,必须要提高自动构建/测试/发布工作流的过程,除了使用Git+Jekins的组合,我发现了另一个组合Gogs+Drone,当然Drone也可以组合Github、Gitlab等,但是他比Jekins好的一点是,比较轻量级,而且界面优雅,能高效集成流水线化测试,编译和部署 如何构建Gogs+Drone 1.Linux环境中安装Docker服务 systemctl status docker.service 2.安装Gogs 在宿主机上下载Gogs

布鲁斯能上天的博客 757

算力网:正在编织的“第二电网“

中国算力网:编织智能时代的"第二电网" 中国正在构建全国一体化算力网,目标让算力资源像水电一样即取即用。这一国家战略通过"东数西算"布局,将东部算力需求与西部清洁能源优势结合,形成三级时延圈(1ms城市级、5ms区域级、20ms国家级)。算力网采用三层架构:基础设施层的八大枢纽节点作为"发电厂",编排管理层的智能调度系统作为"调度中心",运营服务层提供标准化算力服务。关键技术包括算力路由、异构算力统一度量、无损网络和液冷技术等。

这只是一个博客 667

C# Log4Net不输出日志的解决方法

log4net是一个流行的 .NET 日志框架,用于记录应用程序的日志信息。如果你在使用log4net。

精通搬砖,资深技术砖家,在软件开发,人工智能,设备开发等领域都有研究。商业合作&交流学习可私信联系。 1263

2022-03-12:k8s如何搭建gogs+drone实现自动化部署cicd,yaml如何写?

2022-03-12:k8s如何搭建gogs+drone实现自动化部署cicd,yaml如何写? 答案2022-03-12: 需要安装docker和k3s,见 docker和k3s,k3s不需要依赖docker,但是drone-run-docker依赖docker,所以一定要安装docker。 第一种方法: yaml如下,需要把192.168.204.13替换成自己电脑的ip: apiVersion: v1 kind: ConfigMap metadata: labels: app: mysql

福大大架构师每日一题 2万+

RML2018.01a数据集的读取与使用

基于深度学习的自动调制识别

QAQIknow的博客 1万+

docker+drone+go自动部署

1、安装mysql自行安装 2、安装Gogs自行安装 3、安装drone/drone docker run -d\ --volume=/var/lib/drone:/data \ --env=DRONE_DEBUG=true\ --env=DRONE_LOGS_TRACE=true\ --env=DRONE_LOGS_DEBUG=true\ --env=DRONE_LOGS_PRETTY=true\ --env=DRONE_AGENTS_ENABLED=true \ --env=

qq_40743080的博客 1222

【面试系列】数据工程师高频面试题及详细解答

本文针对数据工程师岗位,提供了详尽的面试题库和解答,分为初级、中级和高级三个层次。初级面试题主要涉及基本的数据处理和ETL工具的使用,如SQL查询、数据清洗和基本的数据建模。中级面试题重点考察数据管道设计、数据库优化和大数据平台的应用。高级面试题则深入探讨高级数据处理技术、分布式系统架构和数据湖的实现。通过这些问题和解答,候选人可以全面了解数据工程师岗位所需的技能,帮助其更好地准备面试。常考知识点总结部分则系统归纳了数据工程师岗位的关键技能领域。

在路上的专栏 2375

【重识云原生】第四章云网络4.9.5.1节下一代智能网卡——DPU综述

随着数据中心的高速发展,通信能力和计算能力成为数据中心基础设施的相辅相成的两个重要发展方向。若数据中心仅关注计算能力的提升,通信基础设施的提升跟不上,那么数据中心的整体系统性能依然受限,无法发挥出真正的潜力。DPU的提出背景就是应对这些数据量和复杂性的指数级增长。未来,需要将计算移至接近数据的位置,这是目前业界所公认的以数据为中心的体系结构下的创新。综上,DPU对数据中心来说,是通过更明细的分工来实现效率的提升、实现总体系统的成本最优化。...

junbaozi的专栏 1724

再见 Jenkins!几行脚本搞定自动化部署,这款神器有点厉害

在开发或生产环境中,我们经常会搞一套自动化部署方案(俗称一键部署)。比较流行的一种就是Gitlab+Jenkins实现方案,不过这种方案占用内存比较大,没有个8G内存,很难流畅运行,而且部署起来也不快。最近发现一款神器Drone,轻量级CI/DI工具,结合Gogs使用内存占用不到1G,几行脚本就能实现自动化部署,推荐给大家!Drone简介Drone是一款基于容器技术的持续集成工具,使用简单的YAML配置文件即可完成复杂的自动化构建、测试、部署任务,在Github上已经有22K+Star。​。...

m0_72134256的博客 493

通用、可复用的 AI Skill 开发基本流程

-----name:唯一标识符(建议用领域-功能格式):自然语言描述触发条件(AI 依赖此判断是否激活)tags(可选):便于分类和搜索version:支持后续迭代步骤输出物1. 定范围触发场景描述2. 写元数据name3. 填内容结构化 Markdown 文件4. 做验证可运行 + 符合规范5. 去集成放入对应 IDE 目录6. 持续维护跟进框架更新通过这套流程,你不仅可以开发(Hooks 最佳实践)(原生 WebGL 优化)(Pandas/Numpy 高效写法)

lpfasd123的博客 727

从0到1写一个网站(3)搭建环境

点击↑上方↑蓝色“编了个程”关注我~每周至少一篇原创文章这是本公众号的第 40 篇原创文章这是《从0到1写一个网站》系列第3篇文章。这篇文章主要介绍基于云服务器的生产环境的搭建,以及CI...

yasinshaw的博客 381

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

5分钟搞定:用Docker Compose一键部署Gogs+Drone自动化CI/CD环境

本文详细介绍了如何使用Docker Compose快速部署Gogs和Drone,搭建轻量级CI/CD自动化环境。通过实战配置模板和优化技巧,帮助开发者5分钟内完成部署,提升代码交付效率,特别适合小型团队使用。

weixin_30772105的博客 465

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: Docker搭建nextcloud使用云盘
下一篇: 安装ZooKeeper集群
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值