新闻详情

新闻详情

首页 / 资讯中心 / 详情

免Fork定制Open Terminal运行环境:3种方式按需加装apt/pip/npm依赖

发布时间:2026/9/29 4:25:00来源:尧图网络
免Fork定制Open Terminal运行环境:3种方式按需加装apt/pip/npm依赖
免Fork定制Open Terminal运行环境:3种方式按需加装apt/pip/npm依赖【免费下载链接】open-terminalA computer you can curl ⚡项目地址: https://gitcode.com/gh_mirrors/ope/open-terminalOpen Terminal 是一个可以curl的轻量级远程终端 API仓库路径gh_mirrors/ope/open-terminal为 AI Agent 和自动化工具提供专门的命令执行、文件管理环境。默认镜像已预装 Python、Node.js、git、ffmpeg、LibreOffice 等常用工具但当你需要加装额外的 apt、pip 或 npm 依赖时往往不必 Fork 整个项目。本文介绍3 种免 Fork或轻 Fork的定制方式环境变量一键安装、裸机直接安装、构建自定义镜像并附选型对比帮你按需选对方法。先了解Open Terminal 的 4 种镜像变体定制前先搞清你用的是哪个镜像——不同变体对运行时装包的支持完全不同。项目提供了 4 个 Dockerfile见 Dockerfile、Dockerfile.slim、Dockerfile.alpine、Dockerfile.openshift变体体积预装工具运行时装包多用户模式latest全功能~4 GBNode.js、gcc、ffmpeg、LibreOffice、LaTeX、Docker CLI、数据科学库✔ 支持✔slim~430 MBgit、curl、jq✘ 需扩展 Dockerfile✘alpine~230 MBgit、curl、jq✘ 需扩展 Dockerfile✘openshift~430 MBgit、curl、jq✘ 需提前构建镜像✘ 简单说全功能镜像靠环境变量装包精简镜像靠构建镜像装包。这是本文三种方式的分水岭。方式一环境变量一键加装依赖推荐零 Fork如果你用的是默认全功能镜像最快的定制方式就是启动容器时带上 3 个环境变量官方在 README.md 中专门用 Customizing the Docker Environment 一节介绍了它变量作用OPEN_TERMINAL_PACKAGES空格分隔的apt包列表OPEN_TERMINAL_PIP_PACKAGES空格分隔的pip包列表OPEN_TERMINAL_NPM_PACKAGES空格分隔的npm全局包列表一条命令即可同时加装三类依赖docker run -d --name open-terminal -p 8000:8000 \ -e OPEN_TERMINAL_PACKAGEScowsay figlet \ -e OPEN_TERMINAL_PIP_PACKAGEShttpx polars \ -e OPEN_TERMINAL_NPM_PACKAGEStypescript tsx \ ghcr.io/open-webui/open-terminal背后发生了什么容器的启动脚本 entrypoint.sh 会在服务启动前依次检查这 3 个变量有OPEN_TERMINAL_PACKAGES→ 执行sudo apt-get install并清理缓存有OPEN_TERMINAL_PIP_PACKAGES→ 执行pip install有OPEN_TERMINAL_NPM_PACKAGES→ 执行npm install -g。多用户模式的小细节当OPEN_TERMINAL_MULTI_USERtrue时pip 和 npm 会自动改用sudo安装到系统级目录让所有预置用户共享同一批包而不是只装进默认用户的~/.local/这个逻辑同样写在 entrypoint.sh 中。⚠️ 两个注意事项每次启动都会重装包是在容器每次启动时安装的依赖列表越大启动越慢。重度定制建议改用方式三。精简镜像不支持slim/alpine/openshift镜像没有 sudo 和运行时装包能力。如果你给它们设置了这 3 个变量entrypoint-slim.sh 会静默忽略而 entrypoint-openshift.sh 会打印警告并直接丢弃变量——不要在这三种镜像上依赖方式一。方式二裸机安装直接在宿主机上加依赖不想用 DockerOpen Terminal 本身就是一个标准 Python 包见 pyproject.toml可以pip install或uvx一行命令跑起来uvx open-terminal run --host 0.0.0.0 --port 8000 --api-key your-secret-key裸机模式下定制环境 管理你自己的机器需要 apt 包直接在宿主机apt install需要 pip 包直接pip install需要 npm 包直接npm i -g。所有依赖立刻对终端命令生效因为命令就是在你本机上、用你的真实环境执行的。 注意裸机模式下命令以你的用户权限直接运行没有沙箱隔离。给 AI Agent 当安全游乐场时请优先选 Docker。配置优先级为CLI 参数 环境变量 用户配置~/.config/open-terminal/config.toml 系统配置/etc/open-terminal/config.toml 内置默认值API Key 等敏感信息建议放配置文件里避免出现在ps/htop中。方式三构建自定义镜像生产级重度定制当依赖很多、启动速度敏感、或你用的是精简镜像时构建自己的镜像是最稳妥的做法——依赖被烧进镜像层启动零等待。全功能镜像基于 Dockerfile 扩展全功能 Dockerfile 结构清晰apt 系统包第 5-33 行、Node.js、Docker CLI、pip 数据科学库第 50-59 行分区排列。只需在对应位置追加你要的包然后docker build -t my-terminal . docker run -d --name open-terminal -p 8000:8000 my-terminal精简镜像官方已预留加装位Dockerfile.slim 和 Dockerfile.alpine 是两段式构建builder runtime并且官方在注释里直接标出了扩展点加 apt/apk 系统包在 Runtime packages 段如 Dockerfile.slim按一行一个包追加diff 友好加 pip 包追加到 builder 阶段的pip install行如 Dockerfile.alpinepip 包需要 C 库编译在 builder 的构建时依赖里补-dev包例如 psycopg2 需要libpq-dev。⚠️ Alpine 使用 musl libcnumpy、pandas 这类 C 扩展包可能需要源码编译速度较慢。遇到兼容问题建议换用 slimDebian/glibc或全功能镜像。为什么生产环境建议用镜像而非环境变量维度环境变量方式一自定义镜像方式三每次启动耗时重新下载安装全部依赖零额外耗时网络依赖每次启动都要能连上包源构建期一次性完成可复现性依赖最新版可能漂移镜像层固化版本可锁定适用镜像仅全功能镜像全部 4 种变体选型速查我该用哪种方式你的场景推荐方式给 AI Agent 临时加几个工具如jq之外的小工具、测试库方式一环境变量本地开发、个人自动化、信任本机环境方式二裸机生产部署、依赖较多、追求快速启动方式三自定义镜像使用 slim / alpine / openshift 精简镜像方式三前两者不支持运行时装包常见坑一句话排雷 ️精简镜像设了包变量却没生效→ 官方设计如此请改 Dockerfile启动变慢了→ 方式一每次启动都装包包多就迁到镜像多用户模式下某用户import不到你装的 pip 包→ 检查是否走了sudo pip install分支仅全功能镜像 OPEN_TERMINAL_MULTI_USERtrue生效Alpine 上 numpy 装不上→ 换 slim 或全功能镜像。总结Open Terminal 的定制哲学很克制小需求用环境变量解决大需求用镜像层固化裸机模式则把整个宿主机的自由度交给你。3 个包变量OPEN_TERMINAL_PACKAGES/OPEN_TERMINAL_PIP_PACKAGES/OPEN_TERMINAL_NPM_PACKAGES覆盖了 80% 的日常定制场景配合 4 个开箱即用的 Dockerfile 变体你几乎不需要 Fork 就能拥有刚刚好的 Agent 运行环境。更多细节可参考 README.md 中的 Customizing the Docker Environment 与 Image Variants 章节。【免费下载链接】open-terminalA computer you can curl ⚡项目地址: https://gitcode.com/gh_mirrors/ope/open-terminal创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Linux系统运行时间详解:uptime、/proc/uptime与重启排查 2026/9/29 5:08:34

Linux系统运行时间详解:uptime、/proc/uptime与重启排查

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
加速度计测的是力而非加速度:MEMS原理与校准实践 2026/9/29 5:08:28

加速度计测的是力而非加速度:MEMS原理与校准实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
Strands Agents Harness SDK 实战:从手写循环到工程化 Agent 运行时 2026/9/29 5:08:27

Strands Agents Harness SDK 实战:从手写循环到工程化 Agent 运行时

1. 为什么“手写 Agent 循环”正在变成一种负债如果你最近半年在折腾 AI Agent,大概率经历过这个阶段:一开始觉得 Agent 不就是“LLM 工具调用 循环”嘛,自己撸一个 while 循环,几十行代码就能跑起来,还挺有成就感。…

阅读更多 →
VS Code+EIDE开发51单片机:SDCC编译链实战指南 2026/9/29 5:08:27

VS Code+EIDE开发51单片机:SDCC编译链实战指南

1. 为什么放弃Keil改用VS Code EIDE?一个老手的真实动因我带过三届单片机实训课,前两届学生清一色用Keil uVision——界面熟悉、资料多、教程满天飞。但去年带第三届时,我主动把整套开发环境换成了VS Code EIDE插件,连配套讲义都…

阅读更多 →
Django线上教育平台大数据分析:从系统开发到业务洞察的毕设实战指南 2026/9/29 5:08:27

Django线上教育平台大数据分析:从系统开发到业务洞察的毕设实战指南

每年到这个时候,总有一批人被“毕设题目”折磨得寝食难安,尤其是计算机类的同学。你打开导师给的选题列表,一眼扫过去,“基于XX框架的XX管理系统”占了大半,看多了脑子都是木的。但今天想聊的这个题目不太一样——基于…

阅读更多 →
APB总线协议实战:从两拍半时序到Verilog从机实现与验证 2026/9/29 5:08:26

APB总线协议实战:从两拍半时序到Verilog从机实现与验证

做SoC集成的朋友大概都有过这种体验:外设寄存器手册写得明明白白,代码一跑读出来不是 0 就是 0xFFFFFFFF,抓波形看上半天,最后发现是自己没吃透 APB 那两拍半的时序。AMBA 总线协议这个体系里,AXI4 总线协议和 AHB 总线…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉