Open soulerror opened 6 months ago
进入容器列表,查看一下 MySQL 容器的状态和日志。
进入容器列表,查看一下 MySQL 容器的状态和日志。
Mysql是没问题的,容器运行后halo的库已经自动创建好了,使用navicat连接业能看到库,但是里面没有表,应该是halo正常启动以后才会生成,现在卡在启动了
Caused by: java.net.UnknownHostException: Failed to resolve 'mysql' [A(1)] after 2 queries
根据错误信息提示,可能是 docker 容器网络问题。 提供一下 docker-compose.yml 和 .env 文件内容截图。
Caused by: java.net.UnknownHostException: Failed to resolve 'mysql' [A(1)] after 2 queries
根据错误信息提示,可能是 docker 容器网络问题。 提供一下 docker-compose.yml 和 .env 文件内容截图。
Caused by: java.net.UnknownHostException: Failed to resolve 'mysql' [A(1)] after 2 queries
根据错误信息提示,可能是 docker 容器网络问题。 提供一下 docker-compose.yml 和 .env 文件内容截图。
docker-compose.yml
networks:
1panel-network:
external: true
services:
halo:
command:
- --spring.r2dbc.url=r2dbc:pool:${PANEL_DB_TYPE}://${PANEL_DB_HOST}:${PANEL_DB_PORT}/${PANEL_DB_NAME}
- --spring.r2dbc.username=${PANEL_DB_USER}
- --spring.r2dbc.password=${PANEL_DB_USER_PASSWORD}
- --spring.sql.init.platform=${PANEL_DB_TYPE}
- --halo.external-url=${HALO_EXTERNAL_URL}
container_name: ${CONTAINER_NAME}
deploy:
resources:
limits:
cpus: ${CPUS}
memory: ${MEMORY_LIMIT}
healthcheck:
interval: 30s
retries: 5
start_period: 30s
test:
- CMD
- curl
- -f
- http://localhost:8090/actuator/health/readiness
timeout: 5s
image: halohub/halo:2.12.4
labels:
createdBy: Apps
networks:
- 1panel-network
ports:
- ${HOST_IP}:${PANEL_APP_PORT_HTTP}:8090
restart: always
volumes:
- ./data:/root/.halo2
version: "3"
本地复现不了问题。 你现在可以尝试手动修改 .env 文件中 PANEL_DB_HOST 和 PANEL_DB_PORT 两个环境变量。 将其修改为 MySQL 的外部连接地址和外部暴露端口,之后再启动 Halo 看一下日志。
本地复现不了问题。 你现在可以尝试手动修改 .env 文件中 PANEL_DB_HOST 和 PANEL_DB_PORT 两个环境变量。 将其修改为 MySQL 的外部连接地址和外部暴露端口,之后再启动 Halo 看一下日志。
找到原因了 这个是安装时选的的数据库 但是其实mysql的容器名是自动生成的【1Panel-mysql-qUrI】 env里提供的mysql容器名 就是叫mysql 导致halo找不到 把env里的PANEL_DB_HOST和PANEL_DB_HOST_NAME都改成1Panel-mysql-qUrI就行了
把env里的PANEL_DB_HOST和PANEL_DB_HOST_NAME都改成1Panel-mysql-qUrI就行了
好的,理论上两个容器在相同的网络环境下,使用容器服务名称或者容器名称都是可以的。 我们接下来也验证一下上述场景,后面版本优化。
所有数据库创建时容器名称和应用名称不一致时都会出现这个bug,因为生成.env文件时host的值使用的是应用名称。如创建MySQL应用是设置容器名称不是mysql、PostgreSQL应用的容器名称不是postgresql时,这个bug会100%复现。
联系方式
soulerror@qq.com
1Panel 版本
v1.10.0-lts
问题描述
halo容器启动后无法连接到数据库,一直重启
重现步骤
1Panel版本v1.10.0-lts halo版本 Halo版本2.12.4
期待的正确结果
能够正常启动
相关日志输出
附加信息
No response