docker部署nacos配置mysql时,提示No DataSource set
docke部署nacos配置mysql时,提示No DataSource set
·
简介
此前通过docker部署nacos时,使用一个docker-compose.yaml
文件同时启动,相关.env
文件正确配置即可直接使用。这次在服务器上已经有了一个mysql容器,所以就将nacos中数据源配置为了已存在的mysql容器,结果在启动时出现了No DataSource set
错误
原因
两个容器均通过docker-compose部署
两个容器分别启动,如果不配置networds会自动创建一个默认网络,就早造成了两个容器,不在同一个网络下,就会出现No DataSource set
错误
解决
使用命令docker network create xxxx
提前创建一个网络,并在两个docker-compose.yaml
文件中指定networks并配置为外部网络
- 注意:
- nacos配置文件中mysql的IP地址应为容器的ip的地址;
- 防火墙对应端口要打开
- 加入.bashrc中可直接使用查询容器的ip
function docker_ip() {
sudo docker inspect --format '{{ .NetworkSettings.IPAddress }}' $1
}
function docker_composer_ip(){
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $1
}
- nacos.env
PREFER_HOST_MODE=172.22.0.2 # 容器ip
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=nacos
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=root
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=UTC
- docker-compose-mysql.yaml
version: "2.2"
services:
mysql:
restart: always
image: mysql:5.7.16
container_name: mysql-server
volumes:
- /data/mysql/db:/var/lib/mysql
- /data/mysql/logs:/var/log/mysql
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
networks:
- xxxx
networks:
xxxx:
external: true
- docker-compose-nacos.yaml
version: "2"
services:
nacos:
image: nacos/nacos-server:2.0.3
container_name: nacos
env_file:
- ./env/nacos-standlone-mysql.env
volumes:
- ./standalone-logs/:/home/nacos/logs
- ./init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
- "9848:9848"
- "9555:9555"
restart: always
networks:
- xxxx
networks:
xxxx:
external: true
更多推荐
已为社区贡献1条内容
所有评论(0)