Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >一套基于docker的多实例部署测试脚手架

一套基于docker的多实例部署测试脚手架

作者头像
Ryan-Miao
发布于 2022-09-07 06:59:29
发布于 2022-09-07 06:59:29
51100
代码可运行
举报
文章被收录于专栏:Ryan MiaoRyan Miao
运行总次数:0
代码可运行

最近在写下单功能实现,想要压测下。单纯压测本地很难达到效果,最好是像生产部署一样,基于实际情况进行压测。手头没那么机器的情况下,采用docker做实例化部署就可以了。

以部署下单服务为例,我需要把api服务打包,然后构建docker镜像,最后多实例部署。每次修改完毕代码手动改来改去挺花时间的。一度想要搭建gitlab-jenkins-k8s的方案:代码提交后自动部署到k8s. 但感觉有些复杂,最后选择基于docker-compose稍微改造来实现部署。

整体脚手架目录:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.
├── conf
│   ├── default.conf
│   └── my-order.conf
├── docker-compose.yml
├── Dockerfile
├── entrypoint.sh
└── lib
    ├── readme.md
    └── simple-order-1.0-SNAPSHOT.jar
  • conf是nginx镜像的代理配置。
  • docker-compose.yml是入口
  • Dockerfile是打包springboot服务的docker镜像脚本
  • entrypoint.sh是启动服务的脚本
  • lib目录存放要部署的api服务

自己的测试代码编写完毕后,提交gitee. 在docker服务器上git pull, 然后执行mvn install,把打包好的jar包cp到lib目录。启动docker-compose up即可。

git pull和打包,后续可修改为脚本。就当前目标而言,已经满足我做自己服务压测部署了。

Dockerfile

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
FROM openjdk:8
COPY ./lib /usr/src/myapp
WORKDIR /usr/src/myapp
COPY entrypoint.sh .

ENV server_port 8080

ENTRYPOINT [ "/bin/bash","entrypoint.sh" ]

entrypoint.sh

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
echo 'start' > a;
echo "cur port: $server_port" >> a;
# tail -f a;
java -jar *.jar --server.port=${server_port}

nginx order.conf

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
upstream order{
    server myapp:8080;
    server myapp2:8080;
}

server {
    listen       8090;
    server_name  _;

    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_pass http://order;
    }


}

docker-compose.yml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
version: '3'
services:
  myapp:
    build: 
      context: ./
    image: ryan/myapp:8
    environment: 
      - server_port=8080
    ports: 
      - 8083:8080
    cpu_count: 2
    mem_limit: 4gb
    # deploy:
    #   mode: replicated
    #   replicas: 2
    #   endpoint_mode: vip
  myapp2:
    image: ryan/myapp:8
    environment: 
      - server_port=8080
    ports: 
      - 8084:8080
    cpu_count: 2
    mem_limit: 4gb
    depends_on: 
      - myapp
  ng: 
    image: nginx
    volumes:
      - ./conf:/etc/nginx/conf.d
    ports:
      - "80:80"
      - "8090:8090"
    links: 
      - myapp
      - myapp2
    environment:
      - NGINX_HOST=foobar.com
      - NGINX_PORT=80
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
项目部署 docker 记录
将连接名改为需要连接的依赖名 (在 docker-compose.yml 中配置);
子润先生
2021/06/11
5480
【CTFd】靶场安装与配置(Docker一键配置版)
【CTFd】靶场安装与配置这由于上一次的配置有点小问题,主要是Whale插件不再支持CTFd3.x版本,于是找了个新的插件使用 并且找到了更好的解决方式,不用那么麻烦配环境了 CTFd-Whale最新维护仓库 这次我采用Docker一键部署,并且稍加改动添加了中文包 成果图
正汰
2024/01/16
1.2K0
【CTFd】靶场安装与配置(Docker一键配置版)
手把手教你如何编排和容器化微服务
在本人的微服务系列中,已经演示了各个spring cloud 微服务组件的使用,以及相关的示例微服务应用。在每次启动微服务和对微服务进行扩容、缩容都不方便,本文使用docker-compose将以下的微服务容器化,并进行自动化部署。
DevOps时代
2019/05/09
1.2K0
手把手教你如何编排和容器化微服务
Docker命令大总结,主要微服务项目部署
3.5 给MySQL挂载本地目录容器不仅仅可以挂载数据卷,也可以直接挂载到宿主机目录上。关联关系如下:
叫我阿杰好了
2022/11/07
1.7K0
Docker命令大总结,主要微服务项目部署
docker部署
https://docs.docker.com/install/linux/docker-ce/centos/#uninstall-old-versions 【安装网址】
HUC思梦
2020/09/03
8100
docker-compose 外部配置部署 java 项目
注意,以上顺序不可改变。-Dspring.config.location 别搞错了,不是 --spring.config.location
子润先生
2021/06/11
1.9K0
【Docker项目实战】使用Docker部署OneTerm堡垒机
江湖有缘
2024/09/07
3060
【Docker项目实战】使用Docker部署OneTerm堡垒机
最强微服务部署工具——Docker内容详解
但是微服务由于被分成多个部分,所以部署起来需要不同的条件环境甚至不同的操作系统从而十分繁琐
秋落雨微凉
2023/03/08
1.7K0
最强微服务部署工具——Docker内容详解
【Docker】自定义镜像与Compose
1)在将课前资料中的mysql.tar文件上传到虚拟机,通过load命令加载为镜像
陶然同学
2023/02/27
2.2K0
【Docker】自定义镜像与Compose
Docker 部署Django博客项目
我之前部署我的博客项目(Django应用),没用Docker,直接借助的宝塔Linux服务器面板在服务器上部署的,部署起来也是十分的方便,使用了Django+Nginx+Supervisor+Gunicorn部署,可查看我写过的一片博客:Centos安装python3并使用Nginx+Gunicorn+virtualenv+supervisor来部署django项目。
緣來
2020/01/02
1.4K0
Docker 部署Django博客项目
课件:Docker实用篇
例如一个项目中,部署时需要依赖于node.js、Redis、RabbitMQ、MySQL等,这些服务部署时所需要的函数库、依赖项各不相同,甚至会有冲突。给部署带来了极大的困难。
终有救赎
2023/10/16
3440
课件:Docker实用篇
基于docker的微服务容器化与编排
在本人的微服务系列中,已经演示了各个spring cloud微服务组件的使用,以及相关的示例微服务应用。在每次启动微服务和对微服务进行扩容、缩容都不方便,本文使用docker-compose将以下的微服务容器化,并进行自动化部署。
lyb-geek
2018/07/26
1.6K0
基于docker的微服务容器化与编排
Docker 学习系列二之基本管理
---- 概述 之前对docker的基本的工作原理进行了简单的介绍和学习Docker工作原理 今天开始不断的学习Docker的容器、镜像和仓库管理。 Docker容器管理 Docker 常用管理操作 test@dev:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
吕海峰
2018/04/03
7620
一步步学会用docker部署应用(nodejs版)
docker是一种虚拟化技术,可以在内核层隔离资源。因此对于上层应用而言,采用docker技术可以达到类似于虚拟机的沙盒环境。这大大简化了应用部署,让运维人员无需陷入无止境繁琐的依赖环境及系统配置中;另一方面,容器技术也可以充分利用硬件资源,做到资源共享。
欲休
2019/03/11
2.3K0
CentOS安装Docker
Docker 分为 CE 和 EE 两大版本。CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月。
不吃紫菜
2023/02/13
8.5K0
CentOS安装Docker
Docker快速入门到项目部署
run 就是子命令。docker下面有很多子命令,run是其中一个。创建并运行一个容器。
用户11288958
2025/01/17
2010
Docker快速入门到项目部署
从零开始 - Docker部署前后端分离项目(三)
整个项目文件,里面有两个文件夹,nginx_docker用于存放前后端静态文件,XZAndroidPlatform是整个django项目文件。
梦无矶小仔
2022/08/22
2.1K0
从零开始 - Docker部署前后端分离项目(三)
安装podman 和服务构建
时光_赌徒
2024/11/13
4480
Docker Compose 项目打包部署
参考官方:https://docs.docker.com/compose/compose-file/
IT茂茂
2020/03/19
5.3K0
使用 docker-compose 打包多个应用
docker file 是 使用 docker 部署应用的命令。 具体的命令可以参考 Docker 命令.
付威
2021/01/28
1.7K0
相关推荐
项目部署 docker 记录
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档