返回列表 发布新帖
查看: 496|回复: 0

将 akile_monitor 服务端和客户端打包到Docker部署

发表于 2024-12-7 20:00:50 | 查看全部 |阅读模式

立刻注册账号,享受更清爽的界面!

您需要 登录 才可以下载或查看,没有账号?注册

×
https://github.com/niliovo/akile_monitor_docker
Docker 部署介绍
将前端akile_monitor_fe和主控服务ak_monitor打包进一个容器,被控客户端ak_client单独打包进另一个容器,并利用 GitHub Actions 自动构建Docker镜像并推送至Docker Hub
前端端口 80 主控服务端 端口 3000 可自行映射到宿主机或反向代理TLS加密
前端配置文件 主控服务端配置文件 被控客户端配置文件 共三个配置文件需要修改
支持架构
linux/amd64
linux/arm64
准备工作
以下所有
  1. /CHANGE_PATH
复制代码
替换为你的宿主机路径, 提前创建以下文件避免Docker自动创建文件夹导致失败
Docker 安装

前端+主控服务端
前端配置文件
  1. /CHANGE_PATH/akile_monitor/caddy/config.json
复制代码
参考如下
  1. {
  2.   "socket": "ws://192.168.31.64:3000/ws",
  3.   "apiURL": "http://192.168.31.64:3000"
  4. }
复制代码

主控服务端配置文件
  1. /CHANGE_PATH/akile_monitor/config.json
复制代码

SQLite数据库
  1. /CHANGE_PATH/akile_monitor/ak_monitor.db
复制代码

被控客户端
被控客户端配置文件
  1. /CHANGE_PATH/akile_monitor/client.json
复制代码

主控服务端+前端 部署
Docker Cli 部署
  1. docker run -it --name akile_monitor_server --restart always -v /CHANGE_PATH/akile_monitor/server/config.json:/app/config.json -v /CHANGE_PATH/akile_monitor/server/ak_monitor.db:/app/ak_monitor.db -v /CHANGE_PATH/akile_monitor/caddy/config.json:/usr/share/caddy/config.json -p 80:80 -p 3000:3000 -e TZ "Asia/Shanghai" niliaerith/akile_monitor_server
复制代码

Docker Compose 部署
  1. cat <<EOF > compose.yml
  2. services:
  3.   akile_monitor_server:
  4.     image: niliaerith/akile_monitor_server
  5.     container_name: akile_monitor_server
  6.     hostname: akile_monitor_server
  7.     restart: always
  8.     ports:
  9.       - 80:80 #前端 端口
  10.       - 3000:3000 #主控服务端 端口
  11.     volumes:
  12.       - /CHANGE_PATH/akile_monitor/server/config.json:/app/config.json
  13.       - /CHANGE_PATH/akile_monitor/server/ak_monitor.db:/app/ak_monitor.db
  14.       - /CHANGE_PATH/akile_monitor/caddy/config.json:/usr/share/caddy/config.json
  15.     environment:
  16.       TZ: "Asia/Shanghai"
  17. EOF
  18. docker compose up -d
复制代码

被控客户端 部署
必须添加
  1. host
复制代码
网络模式,否则识别的流量为容器内的
必须添加
  1. /var/run/docker.sock
复制代码
卷,否则识别的系统为容器内的
Docker Cli 部署
  1. docker run -it --name akile_monitor_client --restart always -v /CHANGE_PATH/akile_monitor/client/client.json:/app/client.json -v /var/run/docker.sock:/var/run/docker.sock --net host -e TZ "Asia/Shanghai" niliaerith/akile_monitor_client
复制代码

Docker Compose 部署
  1. cat <<EOF > compose.yml
  2. services:
  3.   akile_monitor_client:
  4.     image: niliaerith/akile_monitor_client
  5.     container_name: akile_monitor_client
  6.     hostname: akile_monitor_client
  7.     restart: always
  8.     network_mode: host
  9.     volumes:
  10.       - /CHANGE_PATH/akile_monitor/client/client.json:/app/client.json
  11.       - /var/run/docker.sock:/var/run/docker.sock
  12.     environment:
  13.       TZ: "Asia/Shanghai"
  14. EOF
  15. docker compose up -d
复制代码

Docker Build 自建镜像
  1. git clone https://github.com/akile-network/akile_monitor
  2. cd akile_monitor
  3. docker build --tag akile_monitor_server .
复制代码

已知问题
因为被控客户端在Docker alpine容器内,所以虚拟化始终显示为docker。

解决方法1: 被控客户端采用 二进制部署,详见 被控端
解决方法2: 忽略虚拟化
爱生活,爱奶昔~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 关注公众号
  • 添加微信客服
© 2025 Naixi Networks 沪ICP备13020230号-1|沪公网安备 31010702007642号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表