手把手教你用Docker快速部署开源MES系统(附避坑指南)

低代码开发平台,快速搭建开源MES系统 基于为离散制造业提供方案及服务的定位,MS云低代码平台的本质是一系列协同制造软件的组合体,SaaS平台采用了云原生的技术架构,完全支持复杂制造业务场景下的低代码配置需求,90%以上需求可通过配置完成,无须再写代码。通过拖拉拽方式即可完成应用程序开发,极大的提高开发效率,配置后即可完成功能升级,开发效率提升70%以上。 阅读详情

从零到一:基于Docker容器化部署开源MES系统的实战全攻略

最近几年,制造业的数字化转型浪潮席卷而来,身边不少在中小型制造企业做IT的朋友都开始面临一个共同的挑战:老板想要上MES系统,但预算有限,动辄几十万甚至上百万的商业软件根本负担不起。我自己也经历过这个阶段,从最初的手忙脚乱到后来摸索出一套相对成熟的部署方案,今天就把这些实战经验整理出来,希望能帮到正在为此发愁的你。

开源MES系统,特别是像qcadoo、Free-MES、LiteMES这些在GitHub上活跃的项目,为预算有限的中小企业提供了绝佳的解决方案。它们不仅功能完整,而且因为开源,你可以根据自己工厂的实际需求进行二次开发,灵活性远超那些“一刀切”的商业软件。更重要的是,借助Docker这样的容器化技术,部署和维护的复杂度大大降低,一个懂点Linux和网络的基础IT人员就能搞定。

这篇文章就是为你准备的——无论你是中小制造企业的IT运维,还是对智能制造感兴趣的开发者,我都会用最直白的方式,带你一步步完成一个开源MES系统的生产级部署。我们会重点解决部署过程中最容易踩坑的数据库配置、应用服务器优化、网络设置等问题,确保你第一次尝试就能成功跑起来。

1. 部署前的环境准备与架构规划

在真正动手敲命令之前,花点时间做好规划能让你少走很多弯路。我见过太多人一上来就急着安装,结果因为环境不兼容或者资源不足,折腾半天又得推倒重来。

1.1 硬件与操作系统选择

对于中小型制造企业,MES系统的硬件需求其实并不夸张。根据我的经验,一个支持50个并发用户、管理5-10条生产线的场景,以下配置就足够了:

组件 最低配置 推荐配置 说明
CPU 4核 8核 现代多核处理器,主频2.0GHz以上
内存 8GB 16GB 数据库和应用服务器分开部署需要更多内存
存储 100GB SSD 200GB NVMe SSD 数据库性能对IO要求较高
网络 千兆以太网 千兆以太网 内网延迟应低于10ms

注意:如果你计划将MES与SCADA、ERP等系统集成,或者需要处理大量的实时生产数据,建议在推荐配置的基础上再增加50%的资源预留。

操作系统方面,Ubuntu Server LTS版本是我的首选。它社区支持好,软件包更新及时,而且对Docker的支持非常完善。我通常选择最新的LTS版本,比如Ubuntu 22.04或24.04,避免使用过于陈旧的发行版。

# 查看当前系统信息
lsb_release -a
uname -r

如果你的服务器已经安装了其他Linux发行版(比如CentOS),也不用担心,大部分步骤都是通用的,只是包管理器的命令需要相应调整。

1.2 Docker与Docker Compose安装

容器化部署的核心就是Docker,它能把应用及其所有依赖打包成一个标准化的单元,确保在任何环境下的运行一致性。这里我提供两种安装方式:官方脚本和apt仓库。

方法一:使用官方安装脚本(最简单)

# 下载并执行Docker安装脚本
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 将当前用户加入docker组,避免每次都要sudo
sudo usermod -aG docker $USER
newgrp docker  # 立即生效,或重新登录

# 验证安装
docker --version
docker run hello-world

方法二:通过apt仓库安装(更可控)

# 卸载旧版本(如果有)
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖包
sudo apt-get update
sudo apt-get install -y \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

# 添加Docker官方GPG密钥
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置仓库
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# 安装Docker Engine
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# 启动并设置开机自启
sudo systemctl enable docker
sudo systemctl start docker

安装完Docker后,还需要安装Docker Compose。虽然新版本的Docker已经包含了Compose插件,但我还是习惯用独立版本,因为有些老项目可能对版本有特定要求。

# 下载Docker Compose(这里以2.20.2为例,可替换为最新版本)
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# 添加执行权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证安装
docker-compose --version

1.3 网络与存储规划

生产环境下的MES系统通常需要与多个系统交互,合理的网络规划至关重要。我建议采用以下架构:

  • 数据库层:PostgreSQL/MySQL容器,单独的网络命名空间
  • 应用层:Spring Boot或Java Web应用容器
  • 缓存层:Redis容器,用于会话管理和热点数据缓存
  • 文件存储:MinIO或NFS共享存储
  • 前端:Nginx反向代理,处理静态资源和负载均衡

创建一个专用的Docker网络能让容器间通信更安全、更高效:

# 创建自定义网络
docker network create mes-network

# 查看网络详情
docker network inspect mes-network

存储方面,千万不要把数据库数据放在容器内部!容器重启或迁移时,内部数据会丢失。一定要使用数据卷(Volume)或绑定挂载(Bind Mount)。

# 创建数据卷
docker volume create postgres-data
docker volume create redis-data
docker volume create app-logs

# 查看所有数据卷
docker volume ls

2. 开源MES项目选型与源码获取

GitHub上开源MES项目不少,但质量参差不齐。根据我的实际使用经验,下面这几个项目值得重点关注:

2.1 主流开源MES项目对比

项目名称 技术栈 活跃度 部署难度 适合场景
Free-MES Spring Boot + Vue3 + MySQL ★★★★★ ★★☆☆☆ 中小型离散制造,功能全面
qcadoo Java + PostgreSQL + Tomcat ★★★★☆ ★★★☆☆ 欧洲开源项目,模块化设计
LiteMES Spring Boot + Vue2 + MySQL ★★★☆☆ ★★☆☆☆ 小型企业,轻量级,多租户
hm-MES Spring Boot + Layui + MySQL ★★★☆☆ ★★★☆☆ 看板功能强大,物联网集成好

提示:选择项目时不仅要看技术栈是否熟悉,更要关注项目的最近提交时间、Issue处理情况和社区活跃度。一个半年没更新的项目,很可能已经无人维护了。

我个人的推荐是Free-MES,原因有三:第一,它基于现代化的Spring Boot和Vue3技术栈,二次开发相对容易;第二,项目维护者提供了完整的Docker部署方案,对新手友好;第三,社区活跃,遇到问题能较快得到解答。

2.2 获取项目源码

直接从GitHub克隆是最简单的方式:

# 创建项目目录
mkdir -p ~/projects/mes-deployment
cd ~/projects/mes-deployment

# 克隆Free-MES项目
git clone https://github.com/metaxk-company/free-mes.git

# 进入项目目录
cd free-mes

# 查看项目结构
tree -L 2

典型的项目结构应该是这样的:

free-mes/
├── docker-compose.yml          # Docker Compose配置文件
├── README.md                   # 项目说明文档
├── source-code/                # 源代码目录
│   ├── backend/               # 后端Java代码
│   ├── frontend/              # 前端Vue代码
│   └── database/              # 数据库脚本
├── deployment/                 # 部署相关文件
│   ├── nginx/                 # Nginx配置
│   ├── init-scripts/          # 初始化脚本
│   └── config/                # 应用配置文件
└── images/                     # 截图和文档图片

如果网络环境访问GitHub较慢,可以考虑使用国内镜像或者先下载ZIP包:

# 使用Gitee镜像(如果项目有同步)
git clone https://gitee.com/metaxk-company/free-mes.git

# 或者下载ZIP包
wget https://github.com/metaxk-company/free-mes/archive/refs/heads/master.zip
unzip master.zip
mv free-mes-master free-mes

2.3 源码结构与关键文件解析

在部署之前,花点时间了解源码结构能帮你更好地理解整个系统:

# 查看后端项目结构
cd source-code/backend
find . -name "pom.xml" -o -name "application*.yml" | head -10

# 查看前端项目结构
cd ../frontend
ls -la

几个关键配置文件需要特别注意:

  1. application.yml:Spring Boot应用的主要配置文件,包含数据库连接、Redis配置、文件上传路径等
  2. docker-compose.yml:定义了所有服务的容器配置、网络和数据卷
  3. nginx.conf:Nginx反向代理配置,影响前端访问和后端API路由
  4. init.sql:数据库初始化脚本,创建表结构和基础数据

我建议在部署前先浏览一遍这些配置文件,根据你的实际环境调整参数。特别是数据库连接字符串、Redis地址、文件存储路径这些与环境相关的配置。

3. 数据库配置与优化实战

数据库是MES系统的心脏,配置不当会导致性能瓶颈甚至数据丢失。我踩过的坑,希望你不要再踩。

3.1 PostgreSQL vs MySQL的选择

大多数开源MES项目都支持PostgreSQL和MySQL,两者各有优劣:

PostgreSQL的优势:

  • 对复杂查询和JSON数据支持更好
  • 事务处理更严谨
  • 扩展性强,支持多种数据类型
  • 在qcadoo等项目中是首选

MySQL的优势:

  • 部署简单,资源占用相对较少
  • 社区庞大,遇到问题容易找到解决方案
  • 对Web应用生态支持更好
  • Free-MES和LiteMES默认使用MySQL

如果你不确定选哪个,我建议跟着项目推荐走。比如Free-MES官方文档推荐MySQL,那就用MySQL;qcadoo推荐PostgreSQL,那就用PostgreSQL。不要强行更换,避免兼容性问题。

3.2 PostgreSQL容器化部署与调优

对于选择PostgreSQL的项目,这里是一份生产级的Docker Compose配置:

version: '3.8'
services:
  postgres:
    image: postgres:15-alpine
    container_name: mes-postgres
    restart: unless-stopped
    environment:
      POSTGRES_DB: mesdb
      POSTGRES_USER: mesuser
      POSTGRES_PASSWORD: StrongPassword123!
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - postgres_data:/var/lib/postgresql/data
      - ./init-scripts:/docker-entrypoint-initdb.d
    ports:
      - "5432:5432"
    networks:
      - mes-network
    command: >
      postgres
      -c shared_buffers=256MB
      -c effective_cache_size=1GB
      -c maintenance_work_mem=64MB
      -c checkpoint_completion_target=0.9
      -c wal_buffers=16MB
      -c default_statistics_target=100
      -c random_page_cost=1.1
      -c effective_io_concurrency=200
      -c work_mem=4MB
      -c min_wal_size=1GB
      -c max_wal_size=4GB
      -c max_connections=200

volumes:
  postgres_data:
    driver: local

networks:
  mes-network:
    driver: bridge

关键配置说明:

  • shared_buffers:数据库缓存,建议设置为系统内存的25%
  • effective_cache_size:操作系统和数据库缓存总和,建议为系统内存的50-75%
  • max_connections:最大连接数,根据应用服务器数量调整

初始化数据库时,一定要先创建扩展和设置合适的字符集:

-- init.sql示例
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pg_trgm";

-- 设置字符集
UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8') WHERE datname = 'mesdb';

3.3 MySQL容器化部署与性能优化

对于MySQL,配置稍有不同:

services:
  mysql:
    image: mysql:8.0
    container_name: mes-mysql
    restart: unless-stopped
    environment:
      MYSQL_ROOT_PASSWORD: RootPassword123!
      MYSQL_DATABASE: mesdb
      MYSQL_USER: mesuser
      MYSQL_PASSWORD: UserPassword123!
    volumes:
      - mysql_data:/var/lib/mysql
      - ./mysql/conf.d:/etc/mysql/conf.d
      - ./init-scripts:/docker-entrypoint-initdb.d
    ports:
      - "3306:3306"
    networks:
      - mes-network
    command: >
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_unicode_ci
      --default-authentication-plugin=mysql_native_password
      --
开源mes系统OpenMES部署,小白级从0开始部署笔记 《新手部署OpenMES系统的实践记录》摘要:本文记录了作者从零开始部署开源制造执行系统OpenMES的完整过程。通过AI辅助,作者完成了环境配置(JDK、Git、MySQL等)、数据库导入、前后端部署等关键步骤,并分享了调试经验。文章特别强调数据库完整导入的重要性,以及如何利用AI工具解决部署过程中的报错问题。作为新手实操指南,本文详细展示了每个环节的具体操作,包括后端Spring Boot项目的Maven打包、前端Vue项目的npm构建等。作者总结了AI辅助开发的实用技巧,建议读者配合流程图保持整体进度 阅读详情

相关推荐

分享开源生产制造执行系统qcadooMES

Open source version qcadoo MES is available as commercial SaaS, but we have also Community Edtion. It is fully Open Source, based on AGPL licence. https://github.com/qcadoo/mes The technology of qcadoo MES is a combination of a bill of materials (BOM) with

通达的博客 5731

用Docker快速部署开源MES系统:手把手教程与避坑指南

容器化技术正成为企业软件交付与运维的主流方式,Docker通过镜像封装与环境隔离机制,有效解决了应用依赖冲突、环境不一致等部署难题,显著提升了系统交付的标准化程度和运维效率。在制造业数字化转型的大背景下,制造执行系统作为连接企业计划层与车间设备层的关键系统,其部署的稳定性直接关系到生产进度追踪、物料批次追溯和质量管控等核心业务的落地效果。然而开源MES系统组件多、依赖复杂,传统手工部署方式往往面临环境配置繁琐、问题排查困难等挑战。本文围绕Docker容器化部署开源MES系统的完整流程,从架构设计、环境准备、

weixin_31421613的博客 218

开源MES容器化部署:基于Odoo与Docker Compose的落地指南

制造执行系统(MES)是车间数字化的核心,但商业软件动辄数十万的成本与漫长实施周期让很多团队望而却步。开源MES虽项目众多,却大多难以开箱即用。容器化技术则提供了一条低成本验证与交付的路径:通过Docker封装应用与数据库,实现环境一致、快速部署和便捷回滚。Odoo社区版凭借成熟的制造模块和开放源码特性,恰好能承担起轻量级MES底座的职责,覆盖工单、工序报工、质检等核心职能。结合Docker Compose编排,即可在半天内拉通一套可演示、可试用的制造执行环境。本文从选型逻辑、环境准备、配置拆解到生产加固和

weixin_33585822的博客 278

手把手教你用.NET Core3.1+Vue3搭建小型MES系统(附SQL Server配置指南)

本文详细介绍了如何使用.NET Core 3.1与Vue3技术栈从零搭建轻量化MES系统,特别包含SQL Server数据库的优化配置指南。通过分层架构设计、实时生产进度跟踪和动态表单生成等核心功能实现,帮助中小型工厂快速部署高效的制造执行系统,提升生产管理效率。

weixin_30399821的博客 499

Java+YOLO工业视觉落地全流程:从环境搭建到产线部署,中小厂/接单首选,附10个避坑指南!

本地库加载失败,Docker容器里权限不足解决:在Dockerfile里创建非root用户,加工业级的权限控制。光照一定要均匀,用环形无影光源现象:金属/塑料/纸质包装反光强,错分率从1%飙升到20%。解决:一定要用环形无影光源,不要用普通的LED灯。ROI要精准,不要全图推理现象:全图推理延迟高,达不到产线节拍。解决:根据产线工件的固定位置,做精准的ROI提取,只处理目标所在的区域,推理速度可以提升3倍以上。置信度阈值不要设太高,小目标的置信度本来就低现象:小目标漏检率高。

2601_94871597的博客 424

深入理解C# MES开源项目:源代码分析与实践指南

本文还有配套的精品资源,点击获取 简介:本文对C# MES(制造执行系统)开源源代码进行详解,探讨了其关键技术和设计原则。C# MES是用C#语言开发的开源软件,用于实时监控和管理企业生产流程,位于ERP系统和底层控制系统之间。文章涵盖了C#语言基础、.NET Framework / .NET Core、ORM、设计模式、多线程、用户界面技术、RESTful API、异常处...

weixin_35935514的博客 3982

离散制造中小企业MES选型:B/S开源路线部署与避坑指南

MES系统是连接计划层与车间执行层的关键,用于解决离散制造中工单、报工、物料等现场数据断层。其核心原理是通过工单-工序-报工三级数据模型,实现生产进度与物料批次追溯。采用B/S架构与开源方案,能显著降低部署与二次开发成本,尤其适合车间工位分散、网络条件参差的中小制造企业。典型应用包括实时报工防错、BOM递归展开、ERP/WMS数据对接等。苦糖果MES系统正是基于此路线,为中小企业提供免费、可自主扩展的生产执行管理能力。

weixin_26742753的博客 271

苦糖果MES系统:离散制造中小企业开源生产执行管理系统部署与实操指南

MES系统是连接计划层与执行层的核心工业软件,通过工单管理、报工记录、物料齐套和质量追溯等模块,实现生产现场数据的实时采集与透明化管控。在离散制造场景中,B/S结构让终端免安装、升级即刷新,开源模式则大幅降低中小企业的License成本。对于年产值数千万、IT人力有限、订单多品种小批量的工厂,一套轻量级MES能有效解决插单频繁、报工滞后、缺料停线等典型痛点。苦糖果MES系统正是面向这一场景的开源免费方案,本文围绕其技术骨架、核心模块配置与落地避坑经验展开实操讲解。

weixin_29195217的博客 201

基于Ruoyi框架的开源MES系统部署与二次开发实战指南

制造企业数字化转型中,MES系统是连接计划层与执行层的核心枢纽,其选型与落地直接决定车间管理的精细化程度。MES并非简单软件安装,而是需要将排产、工单、质检、追溯等业务流程与系统功能深度耦合。基于Spring Boot和Vue构建的前后端分离架构,已成为当前主流技术方案,通过清晰划分后端服务与前端交互,既保障了系统的灵活扩展性,也降低了维护成本。开源框架Ruoyi凭借完善的RBAC权限体系、代码生成能力和活跃社区生态,为MES二次开发提供了高起点的底座支撑,使开发团队能将主要精力聚焦于生产工艺与质量管控逻辑

weixin_31102231的博客 259

QCADOO开源MES部署与车间落地实战指南

MES(制造执行系统)是连接计划与生产的中枢,其核心在于实时性、状态可控与数据可溯。QCADOO作为轻量级开源MES,基于Spring Boot与严格状态机设计,专为中小离散制造企业解决工单断点、报工失真、工序卡顿等典型执行断层问题。它不追求大而全,而是通过事务级闭环、Flyway数据库迁移、RESTful API集成与可扩展状态机,支撑从派工、扫码报工到返工返修的完整制造执行链路。本文聚焦Win10环境Docker一键部署、JDK17/PostgreSQL14兼容要点、生产级API调用范式及5类车间高频避

weixin_30219613的博客 287

YOLOv8中Bottleneck模块的残差连接机制解析

本文深入解析了YOLOv8目标检测模型中Bottleneck模块的核心设计,重点阐述了其残差连接机制。该机制通过构建一条信息“捷径”,有效缓解了深层网络中的梯度消失问题,稳定了训练过程,并提升了特征提取效率。文章结合代码详细拆解了模块结构,并探讨了其在YOLOv8骨干网络与检测头中的关键作用及参数调优思路。

weixin_29061821的博客 248

华为AC外置Portal认证方案配置步骤指南

华为AC外置Portal认证方案配置步骤指南

m0_46129105的博客 7621

Win11专业版破解RDP限制:实现多用户远程桌面协同办公

本文详细介绍了如何在Windows 11专业版上破解RDP限制,实现多用户远程桌面协同办公。通过使用RDPWrap工具,用户可以绕过微软的授权限制,允许多个用户同时登录同一台电脑,提高硬件利用率和团队协作效率。文章包含详细的安装配置步骤、性能优化技巧及常见问题解决方案,适用于需要远程协作的办公场景。

weixin_33806300的博客 462

116、影像质量主观评价方法论:标准场景与专家判读

本文探讨了影像质量主观评价的方法论,强调标准场景构建和专家判读体系的重要性。作者基于15年行业经验指出,仅靠客观指标无法保证观感质量,提出四类标准场景(灰阶、肤色、纹理、动态)的构建原则和四种专家判读维度(通透性、干净度、自然感、流程化)。文章揭示了主观评价中的常见误区,包括光源单一性、个人判读偏差、显示设备影响等,并建议建立多专家交叉验证机制和主观评价数据库。最后强调主观评价是可标准化的专业技术,需要将人眼感知转化为可追溯的技术参数。

sundong_81的博客 34

双像素传感器的AI计算摄影实战:单目深度估计与图像去模糊的融合创新

本文介绍了双像素传感器技术在计算机视觉中的应用,包括深度估计、图像去模糊和图像重建等任务。双像素传感器通过两个子单元捕捉视差信息,使摄像头能够分析场景的三维结构和运动轨迹。文章以图像去模糊为例,详细展示了从数据准备到模型训练的完整流程,包括构建自定义数据集、设计双像素特征提取模块、训练去模糊模型及推理测试。通过模拟双像素的"双视角"信息融合,该AI算法能有效恢复模糊图像的清晰细节。

know_F0727的博客 253

QT+QGIS跨平台编译(基于Qt,采用一套代码、一套框架,完成QGIS第三方库、核心库、应用程序的跨平台编译)

QT+QGIS跨平台编译。 基于Qt,采用一套代码、一套框架,完成QGIS第三方库、核心库、应用程序的跨平台编译。

LuckyHanMo的博客 4353

保姆级教程:ABAP 通过 HTTP POST 调用 OData 服务创建业务数据的具体例子

笔者之前的文章发布之后,有朋友在评论区留言,询问 ABAP 除了 Web Service 之外,是否也支持 HTTP 呢?ABAP 这么强大的语言,支持 HTTP 当然不在话下。网上有很多在 ABAP 系统基于 CL_HTTP_CLIENT 工具类,通过 HTTP 协议和第三方系统交互的代码例子。本文介绍笔者项目中一个实际例子,实现的是在 ABAP 系统 A 通过 HTTP 调用 OData 服务,在 ABAP 系统 B 创建业务数据的需求。下面我们按照这个套路来一步步实现。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 688

华为OD机试真题 新系统 2026-04-22 C++ 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 155

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: 别再乱调参了!随机森林超参数优化指南(附最佳实践案例)
下一篇: 解决Ubuntu 22.04中AppImage因缺失libfuse2无法运行的问题
半糖主义941
博客等级 码龄3年 416粉丝 1386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值