这是我的 docker-compose.yaml
version: "3"
services:
halo:
image: halohub/halo:2.2.0
container_name: halo
restart: on-failure:3
volumes:
- /home/halo/.halo2:/root/.halo2
ports:
- "43890:8090"
command:
- --spring.r2dbc.url=r2dbc:pool:mysql://*******.mysql.rds.aliyuncs.com:3306/halo2db
- --spring.r2dbc.username=root
- --spring.r2dbc.password=*********
- --spring.sql.init.platform=mysql
- --halo.external-url=http://******.top:43890/
- --halo.security.initializer.superadminusername=admin
- --halo.security.initializer.superadminpassword=*******
先解释一下,我在使用 Docker Compose 部署 Halo 2.2.0 的时候,配置了外部的 MySQL 数据库。这个数据库是阿里云的 RDS,我没有申请外网地址,只能通过服务器内网连接,所以 URL 是那个样子的。
然后为了区分已经部署的 Halo 1.6.x,所以我把端口号改成了 43890。
进入控制面板登录、初始化之后,我查了一下数据库,发现新建了一个 extensions 表,我认为就是连接数据库成功了。然后我新建了一个文章测试一下,文章发布成功,但却没有在数据库中发现新建了表(类似 posts),还是只有一个 extensions 表。
我用 find | xargs grep 命令在容器内和宿主机都查了,没有查到新建的文章在哪里(可能是我不会查)。但是文章的确可以访问,所以就有点困惑了。希望懂得大佬能帮帮小弟。十分感谢了😭