
說明
解決微服務(wù)在多套環(huán)境發(fā)布的問題,解決開發(fā)環(huán)境和預(yù)發(fā)環(huán)境切換的問題,支持 N 套開發(fā)環(huán)境水平擴(kuò)展。

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
開發(fā)/測試環(huán)境 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 中的動(dòng)態(tài)模板,需要先根據(jù)環(huán)境變量渲染成具體的服務(wù)發(fā)布時(shí)用的 stack.yml 文件
待續(xù)。。。