微服务下SpringBoot应用多环境发布

编程

说明

解决微服务在多套环境发布的问题,解决开发环境和预发环境切换的问题,支持 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 发布!

以上是 微服务下SpringBoot应用多环境发布 的全部内容, 来源链接: utcz.com/z/510870.html

回到顶部