主页 > 电脑硬件  > 

Dify:修改环境变量并通过DockerCompose复用现有容器

Dify:修改环境变量并通过DockerCompose复用现有容器

docker官方安装教程非常简单,一键搞定 Deploy with Docker Compose | Dify

前提

有些童鞋可能会提出疑问:是否有必要为每个服务都创建新的容器,是否可以使用已有的容器如Postgres、pg17、Redis、Minio等来实现相似的功能?本文将以我个人的搭建案例为例进行说明。

一键安装后,会出现这么多的容器

在我搭建的服务中,我使用了1panel一键创建的Minio和Redis(部分组件可以配置1panel 方便使用内置功能)。对于向量化数据库,我选择了pg17(也是我所使用的数据库)。而对于Nginx,我使用了1p内置(openresty,基于nginx)的替代方案。

Redis的安装非常简便,只需一键安装,无需额外配置。

如果你对Minio的搭建和配置感兴趣,可以参考我提供的链接(链接点我),这是一篇关于Minio搭建和配置的教程。

pg17搭建配置教程

当你创建完redis,根据minio新建好了一个存储桶和反向代理,在创建数据库,并建立两个数据库

完成以上内内容后,就来到了修改变量和docker-compose

正文开始 去github上下载dify,上传至你的目录,解压缩后,打开docker目录

我使用的是1p,因此这个教程,基本上就是图形化了,记住你的目录

当你打开docker-compose.yaml时,你会看到开头的注释,告诉你这个文件靠.env.example和docker-compose-template.yaml 自动生成

因此我们修改这两个文件即可

# ================================================================== # WARNING: This file is auto-generated by generate_docker_compose # Do not modify this file directly. Instead, update the .env.example # or docker-compose-template.yaml and regenerate this file. # ================================================================== 我的.env.example

加长的地方都是要改的

url

日志

数据库

s3

Redis

# ------------------------------ # API 服务和 Worker 的环境变量 # ------------------------------ # ------------------------------------------------------------------------------------------------------------------------ # 通用变量 # ------------------------------------------------------------------------------------------------------------------------ # 控制台 API 的后端 URL, # 用于拼接授权回调地址。 # 如果为空,则为相同域名。 # 示例: api.console.dify.ai CONSOLE_API_URL= # 控制台 Web 的前端 URL, # 用于拼接一些前端地址和 CORS 配置使用。 # 如果为空,则为相同域名。 # 示例: console.dify.ai CONSOLE_WEB_URL= # 服务 API Url, # 用于向前端展示 Service API Base Url。 # 如果为空,则为相同域名。 # 示例: api.dify.ai SERVICE_API_URL= # WebApp API 后端 Url, # 用于声明前端 API 的后端 URL。 # 如果为空,则为相同域名。 # 示例: api.app.dify.ai APP_API_URL= # WebApp Url, # 用于向前端展示 WebAPP API Base Url。 # 如果为空,则为相同域名。 # 示例: app.dify.ai APP_WEB_URL= # 文件预览或下载 Url 前缀. # 用于向前端展示文件预览或下载 Url,或作为多模态模型输入; # Url 是签名的并且有过期时间。 FILES_URL= # ------------------------------------------------------------------------------------------------------------------------ # 服务器配置 # ------------------------------------------------------------------------------------------------------------------------ # 应用程序的日志级别。 # 支持的值有 `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` LOG_LEVEL=DEBUG # 日志级别 排错用的 # 日志文件路径 LOG_FILE=/app/logs/server.log # 日志文件最大大小,单位为 MB LOG_FILE_MAX_SIZE=20 # 日志文件最大备份数量 LOG_FILE_BACKUP_COUNT=5 # 日志日期格式 LOG_DATEFORMAT=%Y-%m-%d %H:%M:%S # 日志时区 LOG_TZ=UTC # 调试模式,默认为 false。 # 建议在本地开发时开启此配置, # 以防止 monkey patch 导致的一些问题。 DEBUG=false # Flask 调试模式,开启后可以在接口输出追踪信息, # 方便调试。 FLASK_DEBUG=true # 用于安全签署会话 cookie # 和加密数据库中敏感信息的密钥。 # 您可以使用 `openssl rand -base64 42` 生成强密钥。 SECRET_KEY=sk-9f73s3ljTXVcMT3Blb3ljTqtsKiGHXVcMT3BlbkFJLK7U # 初始化管理员用户的密码。 # 如果留空,则在创建初始管理员帐户时, # 不会提示管理员用户设置密码。 # 密码长度不能超过 30 个字符。 INIT_PASSWORD= # 部署环境。 # 支持的值有 `PRODUCTION`, `TESTING`。 默认为 `PRODUCTION`。 # 测试环境。 前端页面上会有一个明显的颜色标签, # 表明此环境为测试环境。 DEPLOY_ENV=TESTING # 是否启用版本检查策略。 # 如果设置为空,将调用 updates.dify.ai 进行版本检查。 CHECK_UPDATE_URL= updates.dify.ai # 用于更改 OpenAI 的 base 地址,默认为 api.openai /v1。 # 当在中国无法访问 OpenAI 时,可以替换为国内镜像地址, # 或者当本地模型提供 OpenAI 兼容 API 时,也可以替换。 OPENAI_API_BASE= api.openai /v1 # 启用后,将在应用程序启动之前执行数据库迁移 # 并且应用程序将在迁移完成后启动。 MIGRATION_ENABLED=true # 文件访问超时时间,单位为秒。 # 默认值为 300 秒。 FILES_ACCESS_TIMEOUT=300 # 访问令牌过期时间,单位为分钟 ACCESS_TOKEN_EXPIRE_MINUTES=60 # 刷新令牌过期时间,单位为天 REFRESH_TOKEN_EXPIRE_DAYS=30 # 应用程序的最大活动请求数,其中 0 表示无限制,应为非负整数。 APP_MAX_ACTIVE_REQUESTS=0 APP_MAX_EXECUTION_TIME=1200 # ------------------------------ # 容器启动相关配置 # 仅在使用 docker 镜像或 docker-compose 启动时生效。 # ------------------------------ # API 服务绑定地址,默认值:0.0.0.0,即所有地址均可访问。 DIFY_BIND_ADDRESS=0.0.0.0 # API 服务绑定端口号,默认值 5001。 DIFY_PORT=5001 # API 服务器 worker 的数量,即 worker 的数量。 # 公式:cpu 核心数 x 2 + 1 (同步模式), 1 (Gevent 模式) # 参考: docs.gunicorn.org/en/stable/design.html#how-many-workers SERVER_WORKER_AMOUNT=1 # 默认为 gevent。如果使用 windows,可以切换到 sync 或 solo。 SERVER_WORKER_CLASS=gevent # 默认 worker 连接数,默认为 10。 SERVER_WORKER_CONNECTIONS=10 # 类似于 SERVER_WORKER_CLASS。 # 如果使用 windows,可以切换到 sync 或 solo。 CELERY_WORKER_CLASS= # 请求处理超时时间。默认值为 200, # 建议设置为 360 以支持更长的 sse 连接时间。 GUNICORN_TIMEOUT=360 # Celery worker 的数量。 默认为 1,可以根据需要设置。 CELERY_WORKER_AMOUNT= # 指示是否启用 Celery worker 的自动扩缩容的标志。 # # 当任务是 CPU 密集型并且可以根据工作负载动态 # 分配和释放时,自动扩缩容非常有用。 # # 启用自动扩缩容后,可以指定 worker 的最大和最小数量。 # 自动扩缩容算法将在指定的范围内动态调整 worker 的数量。 # # 默认为 false(即,禁用自动扩缩容)。 # # 示例: # CELERY_AUTO_SCALE=true CELERY_AUTO_SCALE=false # 可以自动扩缩容的 Celery worker 的最大数量。 # 这是可选的,仅在启用自动扩缩容时使用。 # 默认未设置。 CELERY_MAX_WORKERS= # 可以自动扩缩容的 Celery worker 的最小数量。 # 这是可选的,仅在启用自动扩缩容时使用。 # 默认未设置。 CELERY_MIN_WORKERS= # API 工具配置 API_TOOL_DEFAULT_CONNECT_TIMEOUT=10 API_TOOL_DEFAULT_READ_TIMEOUT=60 # ------------------------------------------------------------------------------------------------------------------------ # 数据库配置 # 数据库使用 PostgreSQL。请使用 public schema。 # 与下面的 'db' 服务中的配置一致。 # ------------------------------------------------------------------------------------------------------------------------ DB_USERNAME=mydify DB_PASSWORD=4JnRcRxxxx DB_HOST=pgvector17 DB_PORT=5432 DB_DATABASE=mydify # 数据库连接池的大小。 # 默认为 30 个连接,可以适当增加。 SQLALCHEMY_POOL_SIZE=88 # 数据库连接池回收时间,默认为 3600 秒。 SQLALCHEMY_POOL_RECYCLE=3600 # 是否打印 SQL,默认为 false。 SQLALCHEMY_ECHO=false # ------------------------------------------------------------------------------------------------------------------------ # Redis 配置 # 此 Redis 配置用于缓存和对话期间的 pub/sub。 # ------------------------------------------------------------------------------------------------------------------------ REDIS_HOST=1Panel-redis-Q4Hx REDIS_PORT=6379 REDIS_USERNAME= REDIS_PASSWORD=jhkdjhkjdhxxx REDIS_USE_SSL=false REDIS_DB=0 # 是否使用 Redis Sentinel 模式。 # 如果设置为 true,应用程序将自动发现并通过 Sentinel 连接到主节点。 REDIS_USE_SENTINEL=false # Redis Sentinel 节点的列表。如果启用 Sentinel 模式,请提供至少一个 Sentinel IP 和端口。 # 格式: `<sentinel1_ip>:<sentinel1_port>,<sentinel2_ip>:<sentinel2_port>,<sentinel3_ip>:<sentinel3_port>` REDIS_SENTINELS= REDIS_SENTINEL_SERVICE_NAME= REDIS_SENTINEL_USERNAME= REDIS_SENTINEL_PASSWORD= REDIS_SENTINEL_SOCKET_TIMEOUT=0.1 # Redis Cluster 节点的列表。如果启用 Cluster 模式,请提供至少一个 Cluster IP 和端口。 # 格式: `<Cluster1_ip>:<Cluster1_port>,<Cluster2_ip>:<Cluster2_port>,<Cluster3_ip>:<Cluster3_port>` REDIS_USE_CLUSTERS=false REDIS_CLUSTERS= REDIS_CLUSTERS_PASSWORD= # ------------------------------------------------------------ # Celery 配置 # ------------------------------------------------------------ # 使用 redis 作为 broker,redis db 1 用于 celery broker。 # 格式如下:`redis://<redis_username>:<redis_password>@<redis_host>:<redis_port>/<redis_database>` # 示例: redis://:difyai654321@redis:6379/1 # 如果使用 Redis Sentinel,格式如下:`sentinel://<sentinel_username>:<sentinel_password>@<sentinel_host>:<sentinel_port>/<redis_database>` # 示例: sentinel://localhost:26379/1;sentinel://localhost:26380/1;sentinel://localhost:26381/1 CELERY_BROKER_URL=redis://:jhkdjhkjdhsIxxxxxx@1Panel-redis-Q4Hp:6379/1 BROKER_USE_SSL=false # 如果您正在使用 Redis Sentinel 实现高可用性,请配置以下设置。 CELERY_USE_SENTINEL=false CELERY_SENTINEL_MASTER_NAME= CELERY_SENTINEL_SOCKET_TIMEOUT=0.1 # ------------------------------ # CORS 配置 # 用于设置前端跨域访问策略。 # ------------------------------ # 指定 Web API 跨域请求的允许来源, # 例如 dify.app 或 * 表示所有来源。 WEB_API_CORS_ALLOW_ORIGINS=* # 指定控制台 API 跨域请求的允许来源, # 例如 cloud.dify.ai 或 * 表示所有来源。 CONSOLE_CORS_ALLOW_ORIGINS=* # ------------------------------------------------------------------------------------------------------------------------ # 文件存储配置 # ------------------------------------------------------------------------------------------------------------------------ # 用于存储用户文件的存储类型。 STORAGE_TYPE=s3 # S3 配置 # S3_ENDPOINT= minio.xx S3_REGION= S3_BUCKET_NAME=dify S3_ACCESS_KEY=T7bwhPEDxxxxxxxxxxxx S3_SECRET_KEY=JWPUOZohxxxxxxxxxxxxx # 是否使用 AWS 托管的 IAM 角色进行 S3 服务身份验证。 # 如果设置为 false,则必须提供 access key 和 secret key。 S3_USE_AWS_MANAGED_IAM=false # ------------------------------------------------------------------------------------------------------------------------ # 向量数据库配置 # ------------------------------------------------------------------------------------------------------------------------ # 要使用的向量存储类型。 # 支持的值有 `weaviate`, `qdrant`, `milvus`, `myscale`, `relyt`, `pgvector`, `pgvecto-rs`, `chroma`, `opensearch`, `tidb_vector`, `oracle`, `tencent`, `elasticsearch`, `elasticsearch-ja`, `analyticdb`, `couchbase`, `vikingdb`, `oceanbase`。 VECTOR_STORE=pgvector # pgvector 配置,仅当 VECTOR_STORE 为 `pgvector` 时可用 PGVECTOR_HOST=pgvector17 PGVECTOR_PORT=5432 PGVECTOR_USER=mydifyai PGVECTOR_PASSWORD=PmRbyiXhhxxx PGVECTOR_DATABASE=mydifyai PGVECTOR_MIN_CONNECTION=1 PGVECTOR_MAX_CONNECTION=5 # ------------------------------ # 知识库配置 # ------------------------------ # 上传文件大小限制,默认为 15M。 UPLOAD_FILE_SIZE_LIMIT=30 # 一次最多上传的文件数量,默认为 5。 UPLOAD_FILE_BATCH_LIMIT=30 # ETL 类型,支持: `dify`, `Unstructured` # `dify` Dify 的专有文件提取方案 # `Unstructured` Unstructured.io 文件提取方案 ETL_TYPE=dify # ------------------------------ # 模型配置 # ------------------------------ # prompt 生成允许的最大 token 数。 # 此设置控制 LLM 在 prompt 生成工具中生成 prompt 时可以使用的最大 token 数量。 # 默认值:512 个 token。 PROMPT_GENERATION_MAX_TOKENS=512 # 代码生成允许的最大 token 数。 # 此设置控制 LLM 在代码生成工具中生成代码时可以使用的最大 token 数量。 # 默认值:1024 个 token。 CODE_GENERATION_MAX_TOKENS=1024 # ------------------------------ # 多模态配置 # ------------------------------ # 输入多模态模型时发送的图像/视频/音频/文档的格式, # 默认值为 base64,可选值为 url。 # url 模式下的调用延迟将低于 base64 模式。 # 通常建议使用兼容性更好的 base64 模式。 # 如果配置为 url,您需要将 FILES_URL 配置为外部可访问的地址,以便多模态模型可以访问图像/视频/音频/文档。 MULTIMODAL_SEND_FORMAT=base64 # 上传图片文件大小限制,默认为 10M。 UPLOAD_IMAGE_FILE_SIZE_LIMIT=10 # 上传视频文件大小限制,默认为 100M。 UPLOAD_VIDEO_FILE_SIZE_LIMIT=100 # 上传音频文件大小限制,默认为 50M。 UPLOAD_AUDIO_FILE_SIZE_LIMIT=50 # ------------------------------ # 其他配置 # ------------------------------ # 索引分词的最大 token 长度 INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH=4000 # 成员邀请链接有效期(小时), # 默认值:72。 INVITE_EXPIRY_HOURS=72 # 重置密码 token 有效期(分钟), RESET_PASSWORD_TOKEN_EXPIRY_MINUTES=5 # 沙箱服务端点。 CODE_EXECUTION_ENDPOINT=http://sandbox:8194 CODE_EXECUTION_API_KEY=dify-sandbox CODE_MAX_NUMBER=9223372036854775807 CODE_MIN_NUMBER=-9223372036854775808 CODE_MAX_DEPTH=5 CODE_MAX_PRECISION=20 CODE_MAX_STRING_LENGTH=80000 CODE_MAX_STRING_ARRAY_LENGTH=30 CODE_MAX_OBJECT_ARRAY_LENGTH=30 CODE_MAX_NUMBER_ARRAY_LENGTH=1000 CODE_EXECUTION_CONNECT_TIMEOUT=10 CODE_EXECUTION_READ_TIMEOUT=60 CODE_EXECUTION_WRITE_TIMEOUT=10 TEMPLATE_TRANSFORM_MAX_LENGTH=80000 # 工作流运行时配置 WORKFLOW_MAX_EXECUTION_STEPS=500 WORKFLOW_MAX_EXECUTION_TIME=1200 WORKFLOW_CALL_MAX_DEPTH=5 MAX_VARIABLE_SIZE=204800 WORKFLOW_PARALLEL_DEPTH_LIMIT=3 WORKFLOW_FILE_UPLOAD_LIMIT=10 # 工作流中的 HTTP 请求节点配置 HTTP_REQUEST_NODE_MAX_BINARY_SIZE=10485760 HTTP_REQUEST_NODE_MAX_TEXT_SIZE=1048576 # SSRF 代理服务器 HTTP URL SSRF_PROXY_HTTP_URL=http://ssrf_proxy:3128 # SSRF 代理服务器 HTTPS URL SSRF_PROXY_HTTPS_URL=http://ssrf_proxy:3128 # ------------------------------ # web 服务环境变量 # ------------------------------ # 文本生成超时时间,单位为毫秒 TEXT_GENERATION_TIMEOUT_MS=60000 # ------------------------------ # db 服务环境变量 # ------------------------------ PGUSER=${DB_USERNAME} # 默认 postgres 用户的密码。 POSTGRES_PASSWORD=${DB_PASSWORD} # 默认 postgres 数据库的名称。 POSTGRES_DB=${DB_DATABASE} # postgres 数据目录 PGDATA=/var/lib/postgresql/data/pgdata # ------------------------------ # sandbox 服务环境变量 # ------------------------------ # 沙箱服务的 API 密钥 SANDBOX_API_KEY=dify-sandbox # Gin 框架运行的模式 SANDBOX_GIN_MODE=release # worker 超时时间,单位为秒 SANDBOX_WORKER_TIMEOUT=15 # 为沙箱服务启用网络 SANDBOX_ENABLE_NETWORK=true # 用于 SSRF 保护的 HTTP 代理 URL SANDBOX_HTTP_PROXY=http://ssrf_proxy:3128 # 用于 SSRF 保护的 HTTPS 代理 URL SANDBOX_HTTPS_PROXY=http://ssrf_proxy:3128 # 沙箱服务运行的端口 SANDBOX_PORT=8194 # ------------------------------ # SSRF 代理环境变量 # ------------------------------ SSRF_HTTP_PORT=3128 SSRF_COREDUMP_DIR=/var/spool/squid SSRF_REVERSE_PROXY_PORT=8194 SSRF_SANDBOX_HOST=sandbox SSRF_DEFAULT_TIME_OUT=5 SSRF_DEFAULT_CONNECT_TIME_OUT=5 SSRF_DEFAULT_READ_TIME_OUT=5 SSRF_DEFAULT_WRITE_TIME_OUT=5 # ------------------------------ # docker 环境变量,用于在启动时指定向量数据库类型 # (根据向量数据库类型,将使用相应的 docker compose profile) # 如果您要使用 unstructured,请在末尾添加 ',unstructured' # ------------------------------ COMPOSE_PROFILES=${VECTOR_STORE:-pgvector} # ------------------------------ # Docker Compose 服务暴露主机端口配置 # ------------------------------ EXPOSE_NGINX_PORT=80 EXPOSE_NGINX_SSL_PORT=443 # ---------------------------------------------------------------------------- # ModelProvider & Tool 位置配置 # 用于指定应用程序中可以使用的模型提供商和工具。 # ---------------------------------------------------------------------------- # 固定、包含和排除工具 # 使用逗号分隔值,项目之间没有空格。 # 示例:POSITION_TOOL_PINS=bing,google POSITION_TOOL_PINS= POSITION_TOOL_INCLUDES= POSITION_TOOL_EXCLUDES= # 固定、包含和排除模型提供商 # 使用逗号分隔值,项目之间没有空格。 # 示例:POSITION_PROVIDER_PINS=openai,openllm POSITION_PROVIDER_PINS= POSITION_PROVIDER_INCLUDES= POSITION_PROVIDER_EXCLUDES= # CSP developer.mozilla.org/en-US/docs/Web/HTTP/CSP CSP_WHITELIST= # 启用或禁用创建 tidb 服务作业 CREATE_TIDB_SERVICE_JOB_ENABLED=false # ThreadPool 中用于并行节点执行的最大提交线程数 MAX_SUBMIT_COUNT=100 # RAG 的 top-k 最大值。 TOP_K_MAX_VALUE=10 我的docker-compose-template.yaml

api

worker

web

sandbox

ssrf_proxy

并且修改网络为1p默认网络 和端口映射

x-shared-env: &shared-api-worker-env # 定义共享的环境变量,api 和 worker 服务会共用这些变量 services: # API 服务 api: image: langgenius/dify-api:0.15.3 restart: always environment: # 使用共享的环境变量 <<: *shared-api-worker-env # 启动模式, 'api' 启动 API 服务器 MODE: api SENTRY_DSN: ${API_SENTRY_DSN:-} SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0} SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0} volumes: # 将 storage 目录挂载到容器内, 用于存储用户文件 - ./volumes/app/storage:/app/api/storage networks: - 1panel-network ports: - "5001:5001" # worker 服务 # Celery worker 用于处理队列任务 worker: image: langgenius/dify-api:0.15.3 restart: always environment: # 使用共享的环境变量 <<: *shared-api-worker-env # 启动模式, 'worker' 启动 Celery worker 用于处理队列任务 MODE: worker SENTRY_DSN: ${API_SENTRY_DSN:-} SENTRY_TRACES_SAMPLE_RATE: ${API_SENTRY_TRACES_SAMPLE_RATE:-1.0} SENTRY_PROFILES_SAMPLE_RATE: ${API_SENTRY_PROFILES_SAMPLE_RATE:-1.0} volumes: # 将 storage 目录挂载到容器内, 用于存储用户文件 - ./volumes/app/storage:/app/api/storage networks: - 1panel-network # 前端 Web 应用 web: image: langgenius/dify-web:0.15.3 restart: always environment: CONSOLE_API_URL: ${CONSOLE_API_URL:-} APP_API_URL: ${APP_API_URL:-} SENTRY_DSN: ${WEB_SENTRY_DSN:-} NEXT_TELEMETRY_DISABLED: ${NEXT_TELEMETRY_DISABLED:-0} TEXT_GENERATION_TIMEOUT_MS: ${TEXT_GENERATION_TIMEOUT_MS:-60000} CSP_WHITELIST: ${CSP_WHITELIST:-} TOP_K_MAX_VALUE: ${TOP_K_MAX_VALUE:-} INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH: ${INDEXING_MAX_SEGMENTATION_TOKENS_LENGTH:-} networks: - 1panel-network ports: - "3000:3000" # DifySandbox sandbox: image: langgenius/dify-sandbox:0.2.10 restart: always environment: # DifySandbox 配置 # 确保为您的部署更改此密钥并使用强密钥。 # 您可以使用 `openssl rand -base64 42` 生成一个强密钥。 API_KEY: ${SANDBOX_API_KEY:-dify-sandbox} GIN_MODE: ${SANDBOX_GIN_MODE:-release} WORKER_TIMEOUT: ${SANDBOX_WORKER_TIMEOUT:-15} ENABLE_NETWORK: ${SANDBOX_ENABLE_NETWORK:-true} HTTP_PROXY: ${SANDBOX_HTTP_PROXY:-http://ssrf_proxy:3128} HTTPS_PROXY: ${SANDBOX_HTTPS_PROXY:-http://ssrf_proxy:3128} SANDBOX_PORT: ${SANDBOX_PORT:-8194} volumes: - ./volumes/sandbox/dependencies:/dependencies healthcheck: test: [ 'CMD', 'curl', '-f', 'http://localhost:8194/health' ] networks: - 1panel-network # ssrf_proxy 服务器 # 更多信息请参考 # docs.dify.ai/learn-more/faq/install-faq#id-18.-why-is-ssrf_proxy-needed ssrf_proxy: image: ubuntu/squid:latest restart: always volumes: - ./ssrf_proxy/squid.conf.template:/etc/squid/squid.conf.template - ./ssrf_proxy/docker-entrypoint.sh:/docker-entrypoint-mount.sh entrypoint: [ 'sh', '-c', "cp /docker-entrypoint-mount.sh /docker-entrypoint.sh && sed -i 's/\r$$//' /docker-entrypoint.sh && chmod +x /docker-entrypoint.sh && /docker-entrypoint.sh" ] environment: # 请根据您的网络环境明确修改 squid 环境变量。 HTTP_PORT: ${SSRF_HTTP_PORT:-3128} COREDUMP_DIR: ${SSRF_COREDUMP_DIR:-/var/spool/squid} REVERSE_PROXY_PORT: ${SSRF_REVERSE_PROXY_PORT:-8194} SANDBOX_HOST: ${SSRF_SANDBOX_HOST:-sandbox} SANDBOX_PORT: ${SANDBOX_PORT:-8194} networks: - 1panel-network networks: 1panel-network: external: true volumes: oradata: dify_es01_data: 一键生成docker-compose.yaml

使用终端工具,打开目录/opt/1panel/docker/compose/dify/dify-main/docker 执行命令./generate_docker_compose 即可自动生成

docker compose down 关闭容器

docker compose up -d 启动容器

或者使用1p的编排功能:创建-路径选择

新建一个反向代理

通过1p即可,要记得开启https配置证书哦

location /console/api { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Forwarded-Proto $scheme; } location /api { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Forwarded-Proto $scheme; } location /v1 { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Forwarded-Proto $scheme; } location /files { proxy_pass http://127.0.0.1:5001; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Forwarded-Proto $scheme; } location / { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $http_connection; proxy_set_header X-Forwarded-Proto $scheme; } 已知问题 当知识库大于10M 无法向量化

错误提示:An error occurred (AccessDenied) when calling the GetObject operation: There were headers present in the request which were not signed

标签:

Dify:修改环境变量并通过DockerCompose复用现有容器由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Dify:修改环境变量并通过DockerCompose复用现有容器