微服务需要部署 nacos, 但是用 docker 进行部署,容器删除之后配置就全部丢失。所以需要配置外部数据库,使得 nacos 数据持久化。
|—— docker-compose.yml
|—— nacos |—— init.d |—— custom.properties
|—— mysql |—— init.sql
version: '3'
services:
nacos:
image: nacos/nacos-server:1.2.1
environment:
- MODE=standalone
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
- SPRING_DATASOURCE_PLATFORM=mysql
- MYSQL_SERVICE_HOST=mysql
- MYSQL_SERVICE_DB_NAME=nacos-config
- MYSQL_SERVICE_PORT=3306
- MYSQL_SERVICE_USER=root
- MYSQL_SERVICE_PASSWORD=pass
volumes:
- ./nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
networks:
- default
ports:
- 8848:8848
mysql:
image: mysql:5.7.24
command: --max_allowed_packet=32505856
volumes:
- ./mysql/my.cnf:/root/mysql/my.cnf mysql
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql
environment:
- MYSQL_ROOT_PASSWORD=123456
ports:
- 3306
networks:
- default
networks:
default
https://raw.githubusercontent.com/alibaba/nacos/master/distribution/conf/nacos-mysql.sql
management.endpoints.web.exposure.include=*
[mysql]default-character-set=utf8
[mysqld]character-set-server=utf8
执行 compose up -d 即可
需要注意,之前调试多次无法连接内网容器的 mysql 数据库,后来改了 mysql 版本之后终于连接成功。一般情况下,不建议使用 mysql 的 docker 容器。建议把 mysql 移到外部,有利于数据的持久化。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。