langgenius/dify-sandbox:0.2.12启动崩溃

文章目录

一. 发现问题

昨天博主参照官方教程搞了Dify测试用例,想着跑一跑熟悉一下各个组件的作用。结果点运行以后,报了sandbox运行不正常的错误,随后进服务器一看,发现sandbox这个容器在频繁重启。

bash 复制代码
CONTAINER ID   IMAGE                                       COMMAND                  CREATED         STATUS                     PORTS                                                                              NAMES
0d9992d583c0   langgenius/dify-sandbox:0.2.12              "/main"                  2 minutes ago   Restart (2) 2 seconds ago 

看了看日志,发现容器启动崩溃,出现以下错误:

bash 复制代码
runtime/cgo: pthread_create failed: Operation not permitted
SIGABRT: abort
PC=0xffffbd067dc0 m=0 sigcode=18446744073709551610

goroutine 0 gp=0x2cf3fa0 m=0 mp=0x2cf4ba0 [idle]:
runtime: g 0 gp=0x2cf3fa0: unknown pc 0xffffbd067dc0
stack: frame={sp:0xfffff0a1d4a0, fp:0x0} stack=[0xfffff021e000,0xfffff0a1d990)
0x0000fffff0a1d3a0:  0x0000ffffbd1e0640  0x0000fffff0a1d830 
0x0000fffff0a1d3b0:  0x0000000002cdc000  0x0000000002cf3fa0 
0x0000fffff0a1d3c0:  0x0000fffff0a1d400  0x0000fffff0a1d430 
runtime: g 0 gp=0x2cf3fa0: unknown pc 0xffffbd067dc0
stack: frame={sp:0xfffff0a1d4a0, fp:0x0} stack=[0xfffff021e000,0xfffff0a1d990)
0x0000fffff0a1d3a0:  0x0000ffffbd1e0640  0x0000fffff0a1d830 
0x0000fffff0a1d3b0:  0x0000000002cdc000  0x0000000002cf3fa0 
0x0000fffff0a1d590:  0x5d1e3267b19f7f89  0xc018e9598504b33d 

goroutine 1 gp=0x40000021c0 m=0 mp=0x2cf4ba0 [running]:
runtime.systemstack_switch()
	/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.3.linux-arm64/src/runtime/asm_arm64.s:201 +0x8 fp=0x4000204740 sp=0x4000204730 pc=0x83ba8
runtime.main()
	/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.3.linux-arm64/src/runtime/proc.go:172 +0x70 fp=0x40002047d0 sp=0x4000204740 pc=0x48820
runtime.goexit({})
	/home/runner/go/pkg/mod/golang.org/toolchain@v0.0.1-go1.23.3.linux-arm64/src/runtime/asm_arm64.s:1223 +0x4 fp=0x40002047d0 sp=0x40002047d0 pc=0x860d4

二. 解决问题

经过一番折腾,发现这个问题是sandbox在执行任何底层操作时,因为权限不足被系统拒绝,而导致的进程崩溃。

博主这里有两种方法来解决这个问题。

法一:sh脚本启动

添加 --privileged 参数

bash 复制代码
#!/usr/bin/sh
docker run -d --name dify-sandbox --restart=always --privileged --security-opt seccomp=unconfined --security-opt apparmor=unconfined langgenius/dify-sandbox:0.2.12

法二:docker-compose启动

  1. docker-compose.yaml中添加 privileged: true 参数。
bash 复制代码
# The DifySandbox
  sandbox:
    image: langgenius/dify-sandbox:0.2.12
    restart: always
    privileged: true
    environment:
      ......
 
  1. 使用 docker-compose config --services来查看sandbox对应的服务名称
bash 复制代码
[root@localhost docker]# docker-compose config --services
ssrf_proxy
plugin_daemon
sandbox
....
  1. 使用 docker-compose up -d sandbox 来启动
相关推荐
淼澄研学2 分钟前
大语言模型文本生成5大技术陷阱与LangChain RAG实操方案
人工智能·语言模型·langchain
AI杂货铺(摸鱼版)2 分钟前
企业多个AI项目怎么分API Key?按项目、工具和环境管理更稳妥
人工智能
蒲公英内测分发7 分钟前
AI 玩具 App 每周更新,怎么用 CI/CD 自动上传测试包又避免误发?
人工智能·测试工具·智能硬件·web app
彼日花9 分钟前
我做了一个开源项目,让 AI 记住我们解决过的问题:Usora
人工智能·agent·ai编程
wangfpp11 分钟前
生产级 RAG 知识库全流程实践
人工智能·agent·全栈
财迅通Ai12 分钟前
TCL中环2026年中报大幅减亏,一体化与全球化共同驱动经营改善
大数据·人工智能·tcl中环
ASKED_201912 分钟前
AI 原生 SDLC 实践手册 | Claude by Anthropic
人工智能
Query*19 分钟前
Agent 开发之项目 AI 能力自我进化:通过浏览器自动化与数据采集实现持续学习
java·人工智能·ai·自动化
从零开始的嵌入式之旅21 分钟前
day32
linux·c语言·经验分享·笔记·嵌入式硬件
CIO_Alliance22 分钟前
AI提示系列(2)| Few-shot与ReAct有何不同? 大模型工具调用的底层逻辑详解
前端·人工智能·深度学习·神经网络·react.js·前端框架·ai+ipaas