微服务下 Spring Boot 应用多环境发布
说明
解决微服务在多套环境发布的问题,解决开发环境和预发环境切换的问题,支持 N 套开发环境水平扩展。
Spring Boot Dockerfile 通用模板
FROM registry.cn-hangzhou.aliyuncs.com/micro-java/openjdk:8-jre-alpine
MAINTAINER 545544032@qq.com
ENV TZ="Asia/Shanghai" JVM_PARAMS=" " SPRING_PARAMS=" "
ADD target/*.jar /server.jar
EXPOSE 8080
CMD java $JVM_PARAMS -Djava.security.egd=file:/dev/./urandom -jar /server.jar $SPRING_PARAMS
Note:
registry.cn-hangzhou.aliyuncs.com/micro-java/openjdk:8-jre-alpine
基于镜像openjdk:8-jre-alpine
,额外安装了工具curl
,用于 docker service 的 health check
开发/测试环境 docker stack 通用模板
version: '3.4'
services:
"{{ service_name }}":
image: "{{ registry_url }}/{{ image_name }}:{{ image_version }}"
environment:
JVM_PARAMS: "{{ jvm_heap }}" # 例如: -Xmx800m -Xms800m
SPRING_PARAMS: " {{ spring_params }}"
networks:
- overlay-network
volumes:
- type: bind
source: "/data/spring-boot/{{ service-name }}/application.properties"
target: /application.properties
stop_grace_period: 30s
deploy:
replicas: 2
resources:
limits:
memory: "{{ memory_limit }}" # 例如 : 1024MB
update_config:
parallelism: 1
delay: 0s
failure_action: rollback
max_failure_ratio: 0
order: stop-first
restart_policy:
condition: on-failure
max_attempts: 3
healthcheck:
test: "curl 127.0.0.1:8080 || exit 1"
interval: 3s
timeout: 5s
retries: 3
start_period: 1m
networks:
overlay-network:
driver: overlay
attachable: true
Note:此为 Ansible 中的动态模板,需要先根据环境变量渲染成具体的服务发布时用的 stack.yml 文件
待续。。。
© 著作权归作者所有,转载或内容合作请联系作者
扫码关注
本文由博客一文多发平台 OpenWrite 发布!
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦