把 dify-mysql 加入 Dify 的 docker network(最快、最稳)

1)找出 Dify 正在用的 network 名字

任选一个 Dify 容器(比如 api),把它所在 network 打印出来:

docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{println $k}}{{end}}' dify_docker_new-api-1

通常你会看到类似:dify_docker_new_default

为了后面少打字,你也可以直接取第一个 network 放到变量里:

DIFY_NET="$(docker inspect -f '{{range $k,$v := .NetworkSettings.Networks}}{{println $k}}{{end}}' dify_docker_new-api-1 | head -n 1)"
echo "$DIFY_NET"

2)把 dify-mysql 接入这个 network

docker network connect "$DIFY_NET" dify-mysql

这一步不会重启容器。

3)验证:从 Dify 容器内连 MySQL 3306

先确认 DNS 能解析容器名:

docker exec -it dify_docker_new-api-1 sh -lc 'getent hosts dify-mysql || ping -c 1 dify-mysql || true'

再做端口连通性测试(用 Python 直连 TCP,基本所有 dify-api 镜像都有 Python):

docker exec -it dify_docker_new-api-1 sh -lc 'python - << "PY"
import socket
host="dify-mysql"; port=3306
s=socket.socket()
s.settimeout(3)
try:
    s.connect((host, port))
    print("OK: connect to %s:%d" % (host, port))
except Exception as e:
    print("FAIL:", e)
finally:
    s.close()
PY'

看到 OK: connect... 就说明网络层已经通了。

更多推荐