大家知道,在公网环境下利用docker安装dify源码镜像比较容易,详见我之前的文章,基于dify开发agent、workflow等非常方便,本次想着在内部网络环境下也完成部署,以方便更多的人使用,但在部署到内网环境下,遇到各类问题,虽然可以通过离线下载安装包来解决,但是总会遇到各种各样的问题,因此本文做了如何通过代理实现安装和更新,具体如下,在dify镜像安装在企业内网部署时,需要考虑各种情况下的代理问题。
1.docker容器安装过程中的代理配置
安装过程中记得在.env的配置proxy,详见.env文件
2.安装插件的代理配置
记得关闭.env的proxy,打开plugin_daemon服务的proxy配置,并配置国内数据源,详见docker-compose.yaml配置文件的PIP_MIRROR_URL,之后安装任何插件都需要打开这一步的配置。
3.安装和配置ollama服务
采用第2步配置下,通过本地安装ollama插件
配置局域网内的ollama服务,记得关闭plugin_daemon服务的proxy配置,否则访问不到。
4.sandbox容器如何安装python库
默认情况下,sandbox还无法安装外部库,由于sandbox依赖于ssrf_proxy,主要原因是ssrf_proxy服务没有设置访问外部的代理,具体设置代理方法如下。
1).打开E:\temp\dify12\docker\ssrf_proxy目录下的squid.conf.template文件
在# cache_peer 172.1.1.1 parent 3128 0 no-query no-digest no-netdb-exchange default 行下面增加如下内容。
# 定义直接访问的 ACL
acl direct_access dst 192.128.0.0/16
# 配置 cache_peer
cache_peer http_proxy_ip parent http_proxy_port 0 no-query no-digest no-netdb-exchange default login=user:pass
# 允许 192.128.*.* 的请求直接访问(B段)
always_direct allow direct_access
# 其他请求通过代理
never_direct allow all
cache_peer的参数说明:
http_proxy_ip:代理服务器的主机名或 IP 地址
parent
或 sibling
:表示该代理是上游(父)代理还是兄弟代理
http_proxy_port:代理服务器的 HTTP 端口
login=用户名:密码
2).打开docker-compose.yaml文件,找到ssrf_proxy服务,增加如下内容
environment:
# pls clearly modify the squid env vars to fit your network environment.
HTTP_PROXY_SERVER_HOST: http_proxy_ip
HTTP_PROXY_SERVER_PORT: http_proxy_port
HTTP_PROXY_SERVER_USERNAME: user
HTTP_PROXY_SERVER_PASSWORD: pwd
然后卸载容器,再重新加载容器。进入sandbox容器中,即可用pip install安装库。
完成类库安装后,记得关闭上述两步设置的内容,防止ssrf攻击。
5.成功部署后实现第一个agent应用
查询数字孪生技术的应用场景有哪些?