在1panel里使用dockercomposer部署cashbook的时候,使用的是DATABASE_URL方式连接服务器
发现怎么也连不上1panel自带的mysql
记录解决过程
一、创建mysql数据库
没什么好说的,在1panel的mysql里面新加一个
二、编写DATABASE_URL
一般形式为:
DATABASE_URL=mysql://username:password@1Panel-mysql-sqlname:3306/foldname在cashbook的dockercomposer文件中,应为:
DATABASE_URL: "mysql://username:password@1Panel-mysql-sqlname:3306/foldname"三、使mysql和cashbook在同一个网络中
这点坑了我最久,直接给出示例
version: '3.8'
services:
cashbook:
build: .
container_name: cashbook-app
ports:
- "9090:9090"
environment:
- NODE_ENV=production
- DATABASE_URL=mysql://username:password@1Panel-mysql-CHsY:3306/cashbook
networks:
- 1panel-network
- default # 保留默认网络以防需要其他服务通信
restart: unless-stopped
volumes:
- ./logs:/app/logs # 如果需要日志持久化
networks:
1panel-network:
external: true # 声明这是外部已存在的网络
name: 1panel-network
default:
driver: bridge
评论