Skip to main content
Version: Next

运行引擎Docker-compose部署

介绍

我们在佰易开开发平台开发了应用后,虽然可以预览到页面并调试功能,但是应用的单独高性能稳定运行还是需要发布到独立部署的开发平台上的。目前开发平台支持应用一键部署并安装应用到独立的服务器上。支持包括移动\网站应用、开放平台、各种管理应用等一键部署或增量部署。

本文主要介绍了Docker部署前后端分离项目的三种方式小结,包含通过两个容器部署,通过compose编排容器自动部署和将前后端项目打成一个镜像部署的三种方式,具有一定的参考价值,感兴趣的可以了解一下

简化部署构建方式,开箱即用,一键部署

通过compose编排容器自动部署

通过compose编排可以自动化部署前后端项目(包括中间件等)

文件目录结构:

image-20240424145936459

参考部署文件:byk.tar.gz

1、安装docker-compose

安装Docker-compose

下载docker-compose
https://github.com/docker/compose/releases/tag/v2.26.1
wget https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-linux-x86_64

拷贝到执行路径下
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose

赋予可执行权限
chmod +x /usr/local/bin/docker-compose

创建软链
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

测试是否安装成功
[root@devope9 byk]# docker-compose version
Docker Compose version v2.26.1

启动该服务
docker-compose up

后台启动该服务
docker-compose up -d

修改配置文件后,重启容器
#docker-compose up -d --force-recreate

2、一键安装byk-proxy、byk-web、byk-engine、byk-mysql、byk-redis

完整:docker-compose.yaml

version: "3.8"
services:
# 定义代理
byk_proxy:
#定义主机名
container_name: byk_proxy
#使用的镜像
image: nginx:1.16.1
#容器的映射端口
ports:
- 8000:80
#定义挂载点
volumes:
#- /home/byk/nginx/html:/usr/share/nginx/html
- /home/byk/nginx/nginx.conf:/etc/nginx/nginx.conf
- /home/byk/nginx/conf.d:/etc/nginx/conf.d
- /home/byk/nginx/logs:/var/log/nginx
#docker 重启后,容器自启动
restart: always
depends_on:
- byk_engine
- byk_web
# 定义后端运行引擎
byk_engine:
image: harbor.billjc.com/wolong/wolong/byk-engine:b2ff614f
container_name: byk_engine
ports:
- 8888:8881
volumes:
- /home/byk/byk-engine:/data
# 环境变量设置
environment:
- SPRING_PROFILES_ACTIVE=k8s
- SEVER_PORT=8881
- ENGINE_HOST_HOST1=kubevirt2.k8s.billjc.com
- ENGINE_HOST_TENANT1=cn86rcqu8
- SPRING_DATASOURCE_DRIVER=com.mysql.jdbc.Driver
- SPRING_DATASOURCE_URL=jdbc:mysql://10.100.254.13:31922/byk_engine?useUnicode=true&enabledTLSProtocols=TLSv1.2&characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
- SPRING_DATASOURCE_USERNAME=root
- SPRING_DATASOURCE_PASSWORD=root
- SPRING_REDIS_HOST=10.100.201.126
- SPRING_REDIS_PORT=6379
- SPRING_REDIS_PASSWD=redis
- SPRING_REDIS_DATABASE=10
- SPRING_FLYWAY_ENABLE=true
- BYK_FILE_PATH=/usr/local/byk/files/
- LOG_LEVEL=info
# 指定容器启动后所需要等待的其它服务的启动时间
depends_on:
- byk_database
- byk_redis
# 定义前端运行引擎
byk_web:
#定义主机名
container_name: byk_web
#使用的镜像
image: harbor.billjc.com/byk/web-engine:95189ece # nginx:1.16.1
#容器的映射端口
ports:
- 8001:80
#docker 重启后,容器自启动
#定义挂载点
volumes:
#- /home/byk/nginx/html:/usr/share/nginx/html
#- /home/byk/byk_web/conf/nginx.conf:/etc/nginx/nginx.conf
- /home/byk/byk_web/conf.d:/etc/nginx/conf.d
- /home/byk/byk_web/logs:/var/log/nginx
restart: always
depends_on:
- byk_engine

# 定义数据库服务(容器)
byk_database:
image: mysql:5.7
container_name: byk_database
ports:
- 3306:3306
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=byk_engine

# 定义 Redis 服务(容器)
byk_redis:
image: redis:7.0.11
container_name: byk_redis
restart: always
ports:
- 6379:6379
command: redis-server --requirepass redis
volumes:
- /home/byk/redis/data:/data
使用命令:docker-compose stats 查看容器状态

image-20240424152337103

image-20240424152010127

使用命令:docker-compose down全部卸载

image-20240424152059590

使用命令:docker-compose up -d 全部安装并启动

image-20240424152137222

3、安装部署包

[root@devope9 byk]# curl -X POST -F "file=@/home/byk/app/appInstall.zip" http://10.100.201.113:8888/engine/install -o -
{"success":true,"message":"应用数据包安装成功!!!","size":null,"result":null,"ext":null}
[root@devope9 byk]#