从零部署openclaw:Docker Compose实战与避坑指南

news2026/5/18 21:22:48
1. 项目概述与核心价值最近在部署一个名为“openclaw”的开源项目时我遇到了不少坑。这个项目在GitHub上的仓库是xujfcn/openclaw-deploy从名字就能看出来它是一个专注于部署的仓库而不是主项目本身。我花了不少时间才搞清楚这个仓库实际上是openclaw项目的一个部署配置集合或者说是一个“一键部署”的指南和脚本库。对于很多刚接触开源项目尤其是那些涉及复杂后端服务、数据库和前端界面的同学来说如何把代码仓库里的东西变成一个真正能跑起来的服务往往是最头疼的一步。xujfcn/openclaw-deploy这个仓库就是为了解决这个痛点而生的。简单来说如果你拿到了openclaw的源代码但不知道如何配置环境、启动服务、连接数据库那么这个部署仓库就是你的救星。它通过 Docker Compose、环境变量配置文件、以及详细的步骤说明将原本可能需要数小时甚至更久的部署过程压缩到几条命令之内。这对于开发者快速搭建测试环境、运维人员统一生产部署规范甚至是学习者快速体验项目全貌都有着巨大的价值。我这次部署的初衷就是为了搭建一个内部使用的自动化工具平台而openclaw的功能正好契合。下面我就把从零开始利用xujfcn/openclaw-deploy成功部署openclaw项目的完整过程、遇到的坑以及解决方案毫无保留地分享出来。2. 部署前准备与环境解析在真正执行docker-compose up之前充分的准备工作是避免后续一系列报错的关键。很多人部署失败问题往往不是出在部署脚本本身而是基础环境没准备好。2.1 系统与资源要求首先你需要一台 Linux 服务器。我个人推荐 Ubuntu 20.04 LTS 或 CentOS 7/8这些系统有广泛的社区支持和稳定的软件源。Windows 系统虽然也可以通过 Docker Desktop 运行但在生产环境或长期使用的场景下Linux 仍然是更标准、问题更少的选择。硬件资源方面你需要关注以下几点CPU与内存openclaw项目可能包含多个微服务如Web后端、任务调度器、数据库等。建议最低配置为2核CPU和4GB内存。如果内存小于2GB在构建Docker镜像或同时运行多个容器时很容易因内存不足导致进程被系统杀死OOM Killer。磁盘空间除了系统本身你需要为Docker镜像和容器数据预留空间。一个完整的部署包括基础镜像如Python、Node.js、项目镜像、数据库数据卷等建议预留至少10GB的可用空间。使用df -h命令检查你的磁盘使用情况。网络确保服务器可以正常访问互联网以下载Docker镜像和必要的软件包。如果服务器在内网你需要提前在内部镜像仓库如Harbor中准备好所有基础镜像。2.2 核心依赖安装Docker 与 Docker Compose这是整个部署的基石。xujfcn/openclaw-deploy的核心就是利用 Docker 容器化技术来封装应用和环境。1. Docker 安装与配置不要使用系统默认仓库里过于陈旧的Docker版本。建议使用Docker官方提供的安装脚本或仓库。对于Ubuntu/Debian# 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 安装依赖工具 sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 设置稳定版仓库 echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io # 启动并设置开机自启 sudo systemctl start docker sudo systemctl enable docker # 将当前用户加入docker组避免每次使用sudo sudo usermod -aG docker $USER # **重要**执行此命令后你需要退出当前终端并重新登录或者执行 newgrp docker 使组权限生效。安装完成后运行docker --version和sudo systemctl status docker验证安装和运行状态。2. Docker Compose 安装Docker Compose 是一个用于定义和运行多容器Docker应用的工具。openclaw-deploy的docker-compose.yml文件就是它的“食谱”。# 下载当前稳定版本的Docker Compose sudo curl -L https://github.com/docker/compose/releases/download/v2.23.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose # 赋予执行权限 sudo chmod x /usr/local/bin/docker-compose # 创建软链接可选方便使用 sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose # 验证安装 docker-compose --version注意国内服务器下载Github资源可能很慢或失败。如果遇到这种情况可以通过更换下载源如使用Daocloud的镜像或先在外网下载好再上传到服务器的方式解决。2.3 获取部署代码与初步审查环境准备好后我们把部署代码拉取到本地。# 克隆部署仓库 git clone https://github.com/xujfcn/openclaw-deploy.git cd openclaw-deploy # 查看仓库结构 ls -la一个典型的部署仓库结构可能包含docker-compose.yml核心编排文件定义了所有服务容器、网络、数据卷。.env或env.example环境变量配置文件。这是重中之重很多配置如数据库密码、API密钥、服务端口都在这里。config/目录可能包含各个服务的独立配置文件如Nginx配置、应用配置文件。scripts/或init/目录可能包含数据库初始化脚本、等待服务就绪的脚本等。README.md部署说明文档务必首先仔细阅读。我的实操心得在运行任何命令之前花10分钟通读README.md和查看docker-compose.yml文件结构。这能让你对整体架构有个概念知道会启动哪些服务它们之间如何关联。比如你可能会发现它需要用到Redis、MySQL、以及一个自定义的后端服务。同时检查.env.example文件你需要将其复制为.env并填写你自己的配置。# 通常需要复制环境变量模板并编辑 cp .env.example .env # 使用vim、nano等编辑器修改 .env 文件中的配置项 vim .env3. 核心配置文件详解与定制部署能否成功八成的工作在于配置。这里我们深入拆解几个关键配置点。3.1 解剖 docker-compose.yml服务架构理解我们假设openclaw-deploy的docker-compose.yml定义了如下服务具体服务名需以实际文件为准version: 3.8 services: mysql: image: mysql:8.0 container_name: openclaw-mysql environment: MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD} MYSQL_DATABASE: ${DB_NAME} MYSQL_USER: ${DB_USER} MYSQL_PASSWORD: ${DB_PASSWORD} volumes: - ./data/mysql:/var/lib/mysql - ./init/mysql:/docker-entrypoint-initdb.d ports: - ${DB_PORT}:3306 networks: - openclaw-network redis: image: redis:7-alpine container_name: openclaw-redis ports: - ${REDIS_PORT}:6379 volumes: - ./data/redis:/data networks: - openclaw-network backend: build: ./backend container_name: openclaw-backend depends_on: - mysql - redis environment: - DB_HOSTmysql - DB_PORT3306 - REDIS_HOSTredis - REDIS_PORT6379 volumes: - ./backend/logs:/app/logs ports: - ${BACKEND_PORT}:8000 networks: - openclaw-network frontend: build: ./frontend container_name: openclaw-frontend depends_on: - backend ports: - ${FRONTEND_PORT}:80 networks: - openclaw-network networks: openclaw-network: driver: bridge关键点解析网络networks所有服务都加入了自定义的openclaw-network桥接网络。在这个网络内部容器之间可以使用服务名如mysql,redis作为主机名直接通信。这就是为什么backend服务的环境变量里DB_HOSTmysql可以生效而不需要写MySQL容器的IP地址。依赖depends_onbackend服务depends_on了mysql和redis。这告诉Docker Compose在启动backend之前先启动mysql和redis。但是请注意depends_on只控制容器启动的先后顺序并不保证容器内的服务如MySQL数据库已经完成初始化并可以接受连接。对于这种场景通常需要在应用代码或启动脚本中添加重试逻辑或者使用healthcheck指令。数据持久化volumes将容器内的目录挂载到宿主机的./data/目录下。例如./data/mysql:/var/lib/mysql确保了MySQL的数据文件保存在宿主机上即使容器被删除数据也不会丢失。务必确保宿主机上的./data/目录存在且有正确的写入权限否则容器启动会失败。端口映射ports格式为宿主机端口:容器内端口。环境变量${BACKEND_PORT}的值来自.env文件。这意味着你可以在.env里设置BACKEND_PORT8080从而在宿主机8080端口访问后端服务。3.2 环境变量文件 (.env) 配置实战.env文件是配置的集中营。修改前请务必备份原始.env.example。一个典型的.env文件内容# 数据库配置 DB_ROOT_PASSWORDYourStrongRootPassword123! DB_NAMEopenclaw DB_USERopenclaw_user DB_PASSWORDYourStrongUserPassword456! DB_PORT3306 # Redis配置 REDIS_PORT6379 # 后端服务配置 BACKEND_PORT8000 # 前端服务配置 FRONTEND_PORT3000 # 其他密钥如果有 SECRET_KEYyour-super-secret-key-for-django-flask-etc配置注意事项密码强度生产环境务必使用高强度、随机的密码不要使用示例中的简单密码。端口冲突检查DB_PORT、BACKEND_PORT、FRONTEND_PORT是否与宿主机上已使用的端口冲突。可以使用netstat -tlnp或ss -tlnp命令查看。路径问题如果配置中涉及文件路径请确保使用绝对路径或者相对于docker-compose.yml文件的正确相对路径。变量引用在docker-compose.yml中通过${VAR_NAME}引用这些变量。确保变量名完全一致。3.3 自定义构建与镜像拉取策略在docker-compose.yml中backend和frontend服务使用了build: ./backend这样的指令。这意味着Docker Compose会尝试根据./backend/Dockerfile来构建镜像。可能遇到的问题及解决构建缓慢首次构建需要下载基础镜像并执行所有指令可能会很慢。可以考虑为Docker Daemon配置国内镜像加速器如阿里云、中科大镜像。构建失败最常见的原因是网络问题导致依赖下载失败如pip install或npm install或者Dockerfile本身有语法错误。你需要进入./backend目录手动运行docker build -t test-backend .来构建并观察详细的错误日志。使用现有镜像如果项目提供了预构建的镜像你可能会将build: ./backend替换为image: your-registry/openclaw-backend:latest。这时你需要确保有权限从对应的镜像仓库拉取镜像。我的避坑技巧在第一次部署时可以先注释掉frontend服务先确保mysql、redis、backend这三个核心服务能跑通。前端构建往往涉及更多前端工具链问题可能更复杂。分步推进能有效隔离问题。4. 完整部署流程与操作实录一切配置就绪后我们开始正式的部署操作。4.1 启动服务与观察日志在openclaw-deploy项目根目录即docker-compose.yml所在目录下执行启动命令。# 标准启动日志会直接输出到当前终端 docker-compose up # 或者使用后台模式启动 docker-compose up -d我强烈建议第一次运行时不要加-d参数让日志在前台输出。这样你能实时看到所有容器的启动过程任何错误信息都会立刻显示出来方便调试。启动时你应该关注的日志点MySQL看到mysqld: ready for connections表示数据库启动成功。Redis看到Ready to accept connections表示Redis启动成功。Backend这是最可能出问题的地方。关注点数据库连接是否出现OperationalError或Connection refused这可能是数据库还没准备好或者.env中的连接参数密码、用户名错误。依赖安装在构建或启动时pip或npm是否报错应用启动最后是否输出了类似Uvicorn running on http://0.0.0.0:8000或Application startup complete的消息如果使用-d后台启动可以通过以下命令查看日志# 查看所有服务的日志 docker-compose logs # 查看特定服务如backend的日志并持续跟踪-f docker-compose logs -f backend # 查看最近100行日志 docker-compose logs --tail100 backend4.2 服务健康检查与连通性测试当所有容器都“跑起来”之后并不代表服务就正常了。我们需要进行健康检查。1. 检查容器状态docker-compose ps这个命令会列出所有由当前docker-compose.yml管理的容器并显示它们的状态Up、Exit、端口映射等信息。确保所有服务的状态都是Up。2. 进入容器内部调试非常有用# 进入backend容器的bash终端 docker-compose exec backend bash # 或者直接运行一个命令例如测试数据库连接 docker-compose exec backend python -c import pymysql try: conn pymysql.connect(hostmysql, user${DB_USER}, password${DB_PASSWORD}, database${DB_NAME}) print(Database connection successful!) except Exception as e: print(fConnection failed: {e}) 注意上面的Python代码需要容器内已安装pymysql库。这只是一个示例实际命令需根据项目技术栈调整。3. 从宿主机进行网络连通性测试# 测试后端API是否响应 curl http://localhost:${BACKEND_PORT}/api/health # 测试前端页面是否可访问如果前端是静态文件服务 curl -I http://localhost:${FRONTEND_PORT}如果curl返回HTTP状态码200或正常的HTML内容说明服务基本可用。4.3 数据初始化与管理员账户创建很多Web应用在第一次启动后需要初始化数据库表结构甚至创建一个默认的管理员账户。openclaw-deploy仓库通常通过两种方式处理通过volumes挂载初始化脚本在docker-compose.yml中MySQL服务挂载了./init/mysql:/docker-entrypoint-initdb.d。任何放在./init/mysql目录下的.sh、.sql文件在MySQL容器首次启动时都会自动执行。你可以在这里放置创建数据库、基础表结构的SQL文件。通过应用自身的迁移命令对于Django、Laravel、Spring Boot等框架通常需要在应用容器启动后执行数据迁移migrate命令。这可能需要你在backend服务的Dockerfile的启动命令中包含迁移或者手动执行docker-compose exec backend python manage.py migrate # Django示例 docker-compose exec backend flask db upgrade # Flask示例创建超级用户同样可能需要手动创建。docker-compose exec backend python manage.py createsuperuser务必查看项目的README.md里面通常会写明数据初始化的具体步骤。5. 运维、调试与故障排查实录部署成功只是第一步长期稳定运行和问题排查才是真正的考验。5.1 日常运维命令清单记住这些命令能让你从容管理服务操作命令说明启动docker-compose up -d后台启动所有服务停止docker-compose down停止并移除所有容器、网络默认不删除数据卷停止清理docker-compose down -v停止并移除容器、网络以及数据卷危险会丢失数据重启docker-compose restart重启所有服务重启单个docker-compose restart backend重启指定服务查看状态docker-compose ps查看服务状态查看日志docker-compose logs -f跟踪所有服务日志查看日志单个docker-compose logs -f backend跟踪指定服务日志进入容器docker-compose exec backend bash进入指定容器的shell构建镜像docker-compose build重新构建所有服务的镜像构建单个docker-compose build backend重新构建指定服务的镜像拉取镜像docker-compose pull拉取服务所需的最新镜像5.2 常见问题与解决方案速查表以下是我在部署和运维过程中遇到的一些典型问题及解决方法问题现象可能原因排查步骤与解决方案容器启动后立即退出 (Exited)1. 启动命令错误2. 环境变量缺失或错误3. 依赖服务未就绪4. 端口冲突1.docker-compose logs service-name查看退出前的日志。2. 检查docker-compose.yml中该服务的command或entrypoint。3. 检查.env文件是否配置正确且已被加载。4. 检查depends_on的服务是否健康。5.netstat -tlnp | grep :PORT检查端口占用。后端服务无法连接数据库1. 数据库连接参数错误2. 数据库服务未启动或初始化慢3. 网络不通1. 进入后端容器手动执行连接测试命令见4.2节。2. 检查MySQL容器日志确认已初始化完成。3. 在后端容器的环境变量中确保DB_HOST是服务名如mysql。4. 在后端应用的启动脚本中添加等待数据库就绪的逻辑。前端页面能打开但接口报404/5021. 前端配置的后端API地址错误2. 后端服务未运行或崩溃3. Nginx如有代理配置错误1. 打开浏览器开发者工具F12的Network标签查看请求的URL是否正确指向了后端容器。2.docker-compose ps和docker-compose logs backend检查后端状态。3. 如果使用了Nginx检查其配置文件中的proxy_pass地址。修改代码或配置后不生效1. Docker镜像或容器有缓存2. 修改了docker-compose.yml但未重建1. 对于代码修改需要docker-compose build重建镜像再docker-compose up -d。2. 对于环境变量.env修改需要docker-compose down再docker-compose up -d重新创建容器。3. 对于挂载的配置文件修改后通常需要重启服务docker-compose restart service。磁盘空间不足Docker镜像、日志、数据卷占用过多空间1.docker system df查看Docker磁盘使用情况。2.docker image prune删除未被使用的镜像。3.docker container prune删除已停止的容器。4. 清理特定数据卷谨慎操作。5.3 性能监控与日志管理基础对于长期运行的服务基础的监控是必要的。1. 查看容器资源占用docker stats这个命令会实时显示所有容器的CPU、内存、网络IO、磁盘IO使用情况帮助你快速定位资源瓶颈。2. 集中化管理日志进阶默认的docker-compose logs查看的是容器标准输出。对于生产环境建议将日志收集到外部系统如 ELKElasticsearch, Logstash, Kibana或 Grafana Loki。可以在docker-compose.yml中配置日志驱动services: backend: # ... 其他配置 logging: driver: json-file options: max-size: 10m max-file: 3这会将日志以json文件形式存储并限制每个日志文件最大10MB最多保留3个避免日志撑爆磁盘。3. 数据备份与恢复你的数据数据库、上传的文件等保存在宿主机挂载的卷./data里。定期备份这个目录就是备份了数据。# 简单备份示例 tar -czf openclaw-data-backup-$(date %Y%m%d).tar.gz ./data/ # 恢复时停止服务解压备份文件到项目目录再启动服务 docker-compose down tar -xzf openclaw-data-backup-20231027.tar.gz docker-compose up -d6. 安全加固与生产环境考量如果你打算将部署用于公网或生产环境以下加固措施至关重要。6.1 网络安全与端口暴露默认的docker-compose.yml可能将数据库端口如3306映射到了宿主机这是极其危险的。加固措施移除不必要的端口映射在docker-compose.yml中删除mysql和redis服务的ports配置。这样数据库和缓存服务就只在内网openclaw-network中可访问外部无法直接连接。mysql: # ... 其他配置 # ports: # 注释掉或删除这行 # - ${DB_PORT}:3306使用反向代理不要将后端如8000端口直接暴露给公网。使用Nginx或Traefik作为反向代理对外只暴露80/443端口并在代理层配置SSL/TLSHTTPS、限流、WAF等安全功能。配置防火墙在宿主机上使用ufwUbuntu或firewalldCentOS严格限制入站端口只开放必要的SSH22、HTTP80、HTTPS443端口。6.2 镜像与依赖安全使用特定版本标签避免使用latest标签。在docker-compose.yml中为所有基础镜像指定明确的版本号如mysql:8.0.33,python:3.9-slim。这能保证部署的一致性并避免自动升级到不兼容的新版本。定期更新与扫描定期如每月检查并更新基础镜像到安全版本。可以使用docker scan命令需登录Docker Hub或集成Trivy、Clair等工具到CI/CD流程中扫描镜像中的已知漏洞。最小化镜像如果项目允许推动使用更小的基础镜像如-alpine,-slim版本减少攻击面。6.3 密钥管理与环境安全绝对不要将密码、API密钥等敏感信息硬编码在docker-compose.yml或Dockerfile中。使用.env文件正如我们之前做的这是最基本的方式。但要确保.env文件不被提交到Git仓库应在.gitignore中列出。使用Docker Secrets或K8s Secrets对于更高级的部署如Docker Swarm或Kubernetes使用其提供的Secrets管理机制。使用外部配置中心在生产环境中可以考虑使用Vault、AWS Secrets Manager等服务来动态管理密钥。最后部署完成后进行一次完整的功能测试和安全扫描如使用Nmap进行端口扫描检查是否有不应暴露的服务是上线前必不可少的步骤。整个openclaw-deploy项目提供的是一套标准化的部署框架真正要让它安全、稳定地跑起来还需要你根据实际的应用逻辑和运维环境填充这些安全与运维的细节。希望这份超详细的实录能帮你绕过我踩过的那些坑顺利部署属于你自己的openclaw服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2622881.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…