本地docker-compose使用方式
要使用docker-compose 必须要要有docker-compose.yml 文件,内容大致如下:
version: '3'
services:
external-redis:
image: redis
restart: unless-stopped
external-mysql:
image: mysql:5.7
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: xz123456
MYSQL_DATABASE: payment
volumes:
- mysql-storage:/var/lib/mysql/
- ./payment.sql:/docker-entrypoint-initdb.d/payment.sql
- ./nacos.sql:/docker-entrypoint-initdb.d/nacos.sql
ports:
- 3306:3306
external-nacos:
image: nacos/nacos-server:latest
restart: always
ports:
- 8848:8848
environment:
MODE: standalone
SPRING_DATASOURCE_PLATFORM: mysql
MYSQL_DATABASE_NUM: 1
MYSQL_SERVICE_HOST: external-mysql
MYSQL_SERVICE_PORT: 3306
MYSQL_SERVICE_DB_NAME: nacos_config
MYSQL_SERVICE_USER: root
MYSQL_SERVICE_PASSWORD: xz123456
external-zipkin:
image: openzipkin/zipkin
restart: unless-stopped
ports:
- "9411:9411"
external-disque:
image: richnorth/disque
restart: unless-stopped
ports:
- 7711:7711
base-notify-router:
image: dhub.xxx.cn/biz/base-notify-router
environment:
DAS_ENV: local
ports:
- 8084:80
core-payment-acc:
image: dhub.xxx.cn/biz/core-payment-acc
environment:
DAS_ENV: local
volumes:
mysql-storage:
除了一些常用的辅助镜像,还有自有的服务镜像,服务镜像已经提前打包发布到自己的镜像仓库上,以core-开头命名。
docker-compose要点:
- 对于需要存储的镜像,可以配置volumes,这样下次启动时,即可恢复数据
- 外部基础服务和线上保持相同名称,这样可以降低代码配置复杂度,譬如external-redis、external-mysql、external-zipkin、external-nacos等
- 通过指定environment.DAS_ENV=local,可以区分线上环境和测试环境(当然也可以通过.env文件来配置,具体自行百度)
- 注意对于开发系统,可以配置build节点,这样每次mvn package之后,即可使用”docker-compose up --build“参数启用镜像打包
当配置好docker-compose.yml文件后,直接通过以下命令,管理本地开发环境:
docker-compose up -d --build # 启用环境
docker-compose up -d --scale core-payment-gateway=10 #启动多实例,将core-payment-gateway配置成10个进程
docker-compose down # 关闭环境
docker-compose logs -f #查看日志
docker-compose logs -f core-payment-gateway #查看单个容器的镜像
当然,一定要有docker环境,在Idea中使用的话要有docker插件。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。