微服务小范围发布影响小
1 看下项目结构,首先要有dockerfile,
FROM git.we3tu.com:5000/tomcatmaven:latest
RUN apk --update add wget
RUN mkdir -p /usr/src/app
RUN mkdir -p /usr/scripts
RUN mkdir -p /www
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN unzip /usr/src/app/target/visa.war -d /opt/tomcat/webapps/ROOT
RUN cp /usr/src/app/start.sh /usr/scripts
RUN rm -rf /usr/src/app
ENTRYPOINT ["/bin/sh","/usr/scripts/start.sh"]
2 关于应用的配置文件用变量传递下载到测试环境或生产环境
vim start.sh
#! /bin/sh
wget http://$DOMAIN_ENV.config.we3tu.com/$PROJECTNAME/dev/application.properties -O /opt/tomcat/webapps/ROOT/WEB-INF/classes/dev/application.properties 测试环境配置文件路径
wget http://$DOMAIN_ENV.config.we3tu.com/$PROJECTNAME/pro/application.properties -O /opt/tomcat/webapps/ROOT/WEB-INF/classes/pro/application.properties 生产环境配置文件路径
wget http://$DOMAIN_ENV.config.we3tu.com/$PROJECTNAME/applicationContext.xml -O /opt/tomcat/webapps/ROOT/WEB-INF/classes/applicationContext.xml
/opt/tomcat/bin/catalina.sh run
3 vim .gitlab-ci.yml
stages:
- build
- deploy
variables:
PROJECT_NAME: visa
build_test_docker:
stage: build
script:
- mvn package -Dmaven.test.skip=true
- docker build -f Dockerfile -t $PROJECT_NAME .
- docker tag $PROJECT_NAME git.we2tu.com:5000/$PROJECT_NAME:$CI_COMMIT_REF_NAME
- docker push git.we3tu.com:5000/$PROJECT_NAME:$CI_COMMIT_REF_NAME
tags: - cyjavatest
only: - /^release-*/
deploy_test_docker:
stage: deploy
script:
- docker stack deploy -c deploy/deploy.test.yml visa_service_test
tags: - cyjavatest
only: - /^release-*/
build_master_docker:
stage: build
script:
- mvn clean package -Dmaven.test.skip=true
- docker build -f Dockerfile -t $PROJECT_NAME .
- docker tag $PROJECT_NAME git.we2tu.com:5000/$PROJECT_NAME:$CI_COMMIT_REF_NAME
- docker tag $PROJECT_NAME git.we2tu.com:5000/$PROJECT_NAME:latest
- docker push git.we3tu.com:5000/$PROJECT_NAME:$CI_COMMIT_REF_NAME
- docker push git.we3tu.com:5000/$PROJECT_NAME:latest
tags: - erpjavabuild
only: - master
deploy_prod_docker:
stage: deploy
script:
- docker stack deploy -c deploy/deploy.prod.yml visa_service
tags: - erpprodshell
only: - master
4 部署的路径怎么部署:
vim deploy.test.yml
version: '3'
services:
visa_service_test:
image: git.we3tu.com:5000/$PROJECT_NAME:$CI_COMMIT_REF_NAME
environment:- "DOMAIN_ENV=test"
- "PROJECTNAME=visa"
- "QUARTZ_ENV=noquartz"
logging:
driver: syslog
options:
syslog-address: "tcp://x.x.x.x:5514"
tag: $PROJECT_NAME
ports: - 8021:8080
deploy:
replicas: 1
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: any
networks: - docker-cy-test
networks:
docker-cy-test:
external: true
5 vim deploy.prod.yml
version: '3'
services:
visa_service:
image: git.we3tu.com:5000/$PROJECT_NAME:$CI_COMMIT_REF_NAME
environment:
- "DOMAIN_ENV=prod"
- "PROJECTNAME=visa"
- "QUARTZ_ENV=noquartz"
logging:
driver: json-file
ports: - 8021:8080
deploy:
replicas: 2
update_config:
parallelism: 1
delay: 10s
restart_policy:
condition: any
max_attempts: 10
networks: - prod-net
networks:
prod-net:
external: true
这里的配置中心采用nginx 的autoindex on 这个功能
写一个dockerfile: docker-compose.yml
nginx:
image: nginx
privileged: false
restart: always
ports:
- 80:80
- 1001:1001
- 1002:1002
- 1003:1003
- 1004:1004
- 1005:1005
- 1006:1006
- 1007:1007
volumes: - ./data/conf.d:/etc/nginx/conf.d
- ./data/html:/usr/share/nginx/html
转载于:https://blog.51cto.com/study2008/2173799
微服务小范围发布影响小相关推荐
- 基于 GateWay 和 Nacos 实现微服务架构灰度发布方案
一.灰度发布 灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式.在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有 ...
- Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单。
Taurus.MVC V3.0.3 微服务开源框架发布:让.NET 架构在大并发的演进过程更简单. 前方: 开源地址:GitHub - cyq1162/Taurus.MVC: Taurus.mvc i ...
- 微服务实践:全栈小团队“洪荒之力”改造阿里服务CRM技术体系
本文不重点介绍业务系统,更偏重于经验分享.首先进行了业务介绍,接着和大家简单分享了微服务,着重和大家讲述了微服务的实践,包括微服务技术实践.微服务团队实践.DT下的微服务. 以下为内容整理: 作为全球 ...
- JeecgBoot 2.4 微服务正式版发布,基于SpringBoot的低代码平台
项目介绍 JeecgBoot 是一款基于代码生成器的低代码平台!前后端分离架构 SpringBoot2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Sh ...
- 11.落地:微服务架构灰度发布方案
前置知识 1.nacos 服务注册与发现 2.本地负载均衡器算法 3.gateway 网关 4.ThreadLocal 1.什么是灰度发布? 2.什么是灰度策略? 3.灰度发布落地方案有哪些 4.灰度 ...
- Spring Cloud微服务版本灰度发布新神器
项目地址:https://github.com/Nepxion/Discovery 强烈建议stra.fork该项目,该项目可以作为学习改造Spring Cloud组件的案例项目. Nepxion D ...
- 【使用Spring Cloud Gateway构建微服务网关】—— 每天一点小知识
·
- Game On Serverless:SAE 助力广州小迈提升微服务研发效能
作者:洛浩 小迈于 2015 年 1 月成立,是一家致力以数字化领先为优势,实现业务高质量自增长的移动互联网科技公司.始终坚持以用户价值为中心,以数据为驱动,为用户开发丰富的工具应用.休闲游戏.益智. ...
- 小项目不适合微服务?别扯犊子了!
只有不适合微服务的公司,没有不适合微服务的项目.防止孤岛应用.防止孤岛数据.聚合服务能力.节省公司资源. 1.什么是微服务 微服务是一些协同工作的小而自治的服务.服务适当的小点,让他只做好一件事就可以 ...
最新文章
- CleanMyMac扩展管理功能
- python读写文件函数_Python读写文件
- 用脚本实现“修复连接”的功能
- python序列类型-python序列类型种类详解
- EF Code First 学习笔记:关系(转)
- 一个励志PM小哥哥的Java转型之路
- C语言简单的练习题目——牛生牛
- 【Java】Java 反射 object is not an instance of declaring class
- 全局变量中断原子操作_操作系统导论02-06章
- 在Tomcat中通过JOTM支持JTA
- ------更快的搜索储存结构-----平衡二叉树-----------------
- Springboot中常用的注解
- Java:关于负数的向上转型
- 船舶远程监测系统的物联网解决方案
- DLNA Samba wifi等名词的初步了解
- 赵小楼《天道》《遥远的救世主》深度解析(36)丁元英为什么参加芮小丹组的那场文化人的饭局?
- 在word中,“⑩”后面的顺序符号,如圈11、圈12等如何输入?
- 直销银行和网上银行区别
- 2018年终总结(兼个人详历) | 2018 与我的技术之路
- 华为云发布实时音视频行业加速器,为企业解决技术与商业双重难题