go-sonic / sonic

Sonic is a blogging platform developed by Go. Simple and powerful
MIT License
1.98k stars 252 forks source link

最新版本docker容器,无法使用MySQL数据连接同一网络中容器MySQL #398

Open muyiacc opened 4 months ago

muyiacc commented 4 months ago

检查清单

是什么版本出现了此问题?

通过尝试sqlite 安装可以看到是 Sonic 1.6.0

使用的什么数据库?

mariadb10.3

使用的哪种方式部署?

Docker

在线站点地址

No response

发生了什么?

sonic 采用最新镜像启动的容器(版本1.6.0),尝试使用MySQL数据库,但是提示 failed to initialize database, got error dial tcp: address tcp/port: unknown port,实际上配置是正确的。

后来我采用sqlite ,额外的,在导入的时候,会失败。

相关日志输出

2024-03-25T15:23:35.050+0800    INFO    dal/dal.go:67   try connect to MySQL    {"dsn": "Use dsn in config"}
2024-03-25T15:23:35.051+0800    ERROR   reflect/value.go:584    failed to initialize database, got error dial tcp: address tcp/port: unknown port
2024-03-25T15:23:35.051+0800    FATAL   dal/dal.go:38   connect to MySQL error  {"error": "dial tcp: address tcp/port: unknown port"}
github.com/go-sonic/sonic/dal.NewGormDB
        github.com/go-sonic/sonic/dal/dal.go:38
reflect.Value.call
        reflect/value.go:584
reflect.Value.Call
        reflect/value.go:368
go.uber.org/dig.defaultInvoker
        go.uber.org/dig@v1.17.1/container.go:238
go.uber.org/dig.(*constructorNode).Call
        go.uber.org/dig@v1.17.1/constructor.go:185
go.uber.org/dig.paramSingle.Build
        go.uber.org/dig@v1.17.1/param.go:287
go.uber.org/dig.paramObjectField.Build
        go.uber.org/dig@v1.17.1/param.go:484
go.uber.org/dig.paramObject.Build
        go.uber.org/dig@v1.17.1/param.go:412
go.uber.org/dig.paramList.BuildList
        go.uber.org/dig@v1.17.1/param.go:150
go.uber.org/dig.(*Scope).Invoke
        go.uber.org/dig@v1.17.1/invoke.go:122
go.uber.org/dig.(*Container).Invoke
        go.uber.org/dig@v1.17.1/invoke.go:82
go.uber.org/fx.runInvoke
        go.uber.org/fx@v1.20.1/invoke.go:108
go.uber.org/fx.(*module).executeInvoke
        go.uber.org/fx@v1.20.1/module.go:288
go.uber.org/fx.(*module).executeInvokes
        go.uber.org/fx@v1.20.1/module.go:274
go.uber.org/fx.New
        go.uber.org/fx@v1.20.1/app.go:503
main.InitApp
        github.com/go-sonic/sonic/main.go:74
main.main
        github.com/go-sonic/sonic/main.go:24
runtime.main
        runtime/proc.go:250

附加信息

在本次提交issues之前,用的是mariadb 10.3对应mysql5.7,提交issues时,看到选择数据库备选,是MySQL8.0,这其中是否有什么关系吗,基于我的猜想。

贴上我的容器配置 sonic `version: '3.9' services: sonic: image: 'gosonic/sonic:latest' volumes:

networks: my_network: external: true`

这是 mariadb容器的配置 `version: '3.3'

services: mariadb: image: mariadb:10.3 container_name: mariadb restart: always mem_limit: 300m volumes:

networks: my_network: external: true`

aaro-n commented 3 months ago

不能通过环境变量配置数据库端口。

395