Browse Source

提供v2.3.2版本的docker镜像和使用说明

master
witersen 3 years ago
parent
commit
9dc5fc0c89
  1. 120
      02.php/temp.php
  2. 63
      README.md

120
02.php/temp.php

@ -0,0 +1,120 @@ @@ -0,0 +1,120 @@
<?php
function detect()
{
/**
* ----------负载计算开始----------
*/
$laodavg = shell_exec("cat /proc/loadavg | awk '{print $1,$2,$3}'");
$laodavgArray = explode(' ', $laodavg);
//获取CPU15分钟前到现在的负载平均值
$cpuLoad15Min = (float)trim($laodavgArray[2]);
//获取CPU5分钟前到现在的负载平均值
$cpuLoad5Min = (float)trim($laodavgArray[1]);
//获取CPU1分钟前到现在的负载平均值
$cpuLoad1Min = (float)trim($laodavgArray[0]);
//获取cpu总核数
$cpuCount = shell_exec('grep -c "model name" /proc/cpuinfo');
$cpuCount = (int)trim($cpuCount);
//一分钟的平均负载 / (cpu总核数 * 2),超过100则为100 不超100为真实值取整
$percent = round($cpuLoad1Min / ($cpuCount * 2) * 100, 1);
if ($percent > 100) {
$percent = 100;
}
/**
* ----------负载计算结束----------
*/
$data['load'] = $percent;
/**
* ----------cpu计算开始----------
*/
/**
* cpu使用率
*
* %Cpu(s): 0.0 us, 3.2 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
*
* us user CPU time 用户空间占用CPU百分比
* sy system CPU time 内核空间占用CPU百分比
* ni nice CPU 用户进程空间内改变过优先级的进程占用CPU百分比
* id idle 空闲CPU百分比
* wa iowait 等待输入输出的CPU时间百分比
* hi hardware 硬件中断
* si software 软件中断
* st steal 实时
*/
$topResult = shell_exec('top -b -n 1 | grep Cpu');
preg_match('/ni,(.*?)id/', $topResult, $matches);
$id = 100 - (float)trim($matches[1]);
//cpu型号
$cpuModelArray = [];
$cpuModelName = shell_exec("cat /proc/cpuinfo | grep 'model name' | uniq");
$explodeArray = explode("\n", trim($cpuModelName));
foreach ($explodeArray as $value) {
if (trim($value) != '') {
$tempArray = explode(':', $value);
array_push($cpuModelArray, trim($tempArray[1]));
}
}
//物理cpu个数
$cpuPhysical = shell_exec("cat /proc/cpuinfo | grep 'physical id' | sort -u | wc -l");
$cpuPhysical = (int)trim($cpuPhysical);
//每个物理cpu的物理核心数
$cpuPhysicalCore = shell_exec("cat /proc/cpuinfo | grep 'cpu cores' | wc -l");
$cpuPhysicalCore = (int)trim($cpuPhysicalCore);
//总物理核心数 = 物理cpu个数 * 每个物理cpu的物理核心数(每个物理cpu的物理核心数都一样吗?)
$cpuCore = $cpuPhysical * $cpuPhysicalCore;
//逻辑核心总数(线程总数)
$cpuProcessor = shell_exec("cat /proc/cpuinfo | grep 'processor' | wc -l");
$cpuProcessor = (int)trim($cpuProcessor);
/**
* ----------cpu计算结束----------
*/
$data['cpu'] = round($id, 1);
/**
* ----------内存计算开始----------
*/
/**
* MemTotal 总内存
* MemFree 空闲内存
* MemAvailable 可用内存(MemFree + 可回收的内存),系统中有些内存虽然已被使用但是可以回收,比如cache、buffer、slab都有一部分可以回收
*/
//物理内存总量
$memTotal = shell_exec("cat /proc/meminfo | grep 'MemTotal' | awk '{print $2}'");
$memTotal = (int)trim($memTotal);
//操作系统可用内存总量(没有使用空闲内存)
$memFree = shell_exec("cat /proc/meminfo | grep 'MemAvailable' | awk '{print $2}'");
$memFree = (int)trim($memFree);
//操作系统已使用内存总量
$memUsed = $memTotal - $memFree;
//内存使用率
$percent = round($memUsed / $memTotal * 100, 1);
/**
* ----------内存计算结束----------
*/
$data['mem'] = $percent;
print_r($data);
}
for (;;) {
detect();
sleep(1);
}

63
README.md

@ -14,7 +14,10 @@ @@ -14,7 +14,10 @@
- Gitee:https://gitee.com/witersen/SvnAdminV2.0/attach_files/1099697/download/v2.3.1.zip
- 兼容性
- 操作系统:CentOS7(推荐)、CentOS8、Rocky、Ubuntu(Windows及其它Linux发行版正在测试兼容中)
- 本程序提供 docker 镜像,基于 centos7.9.2009 构建
- 操作系统(手动安装):CentOS7(推荐)、CentOS8、Rocky、Ubuntu(Windows及其它Linux发行版正在测试兼容中)
- PHP版本:5.5 <= PHP < 8.0
- 数据库:SQLite、MySQL
- Subversion:1.8+
@ -171,11 +174,63 @@ php svnadmin.php console @@ -171,11 +174,63 @@ php svnadmin.php console
## 二、docker安装
- docker在下个版本v2.3.2支持
- 拉取镜像
- ```
#拉取镜像
docker pull witersencom/svnadmin:2.3.2
```
- 仅查看软件效果(不挂载数据)
- ```
docker run --name svnadmintemp -d -p 80:80 -p 3690:3690 --privileged svnadmin:2.3.2
```
- 用于生产环境(挂载数据到容器中,容器销毁数据不会丢失)
- 新用户
- ```
#启动一个临时容器,并将配置文件复制出来
docker run --name svnadmintemp -d --privileged=true svnadmin:2.3.2 /usr/sbin/init
#复制的数据目录为 /home/svnadmin/
cd /home/
docker cp svnadmintemp:/home/svnadmin ./
#停止并删除临时容器
dockeer stop svnadmintemp && docker rm svnadmintemp
#启动正式容器
docker run -d -p 80:80 -p 3690:3690 -v /home/svnadmin/:/home/svnadmin/ --privileged svnadmin:2.3.2
```
- 老用户
- ```
#假设数据存储主目录在宿主机的位置为 /home/svnadmin/ 则直接按照下面方式启动即可 会自动将宿主机数据挂载到容器中
docker run -d -p 80:80 -p 3690:3690 -v /home/svnadmin/:/home/svnadmin/ --privileged svnadmin:2.3.2
```
## 三、手动升级
手动配置升级,具体操作步骤如下:
PS: 如果之前在配置文件 $path/config/database.php 中手动切换了MySQL数据库,升级后还需要重配置
### 3.1、docker用户
```
#数据保留在宿主机,停止并删除原来的容器,直接拉取新镜像启动即可
#假设旧版本为 old 新版本为 new
docker stop old && docker rm old
docker run -d -p 80:80 -p 3690:3690 -v /home/svnadmin/:/home/svnadmin/ --privileged new
```
### 3.2、非docker用户
具体操作步骤如下:
```
#假设你的代码部署在 /var/www/html/ 目录下
@ -208,8 +263,6 @@ php server/install.php @@ -208,8 +263,6 @@ php server/install.php
```
#执行脚本并选择使用第2个选项,选择不覆盖原来的 autzh 、passwd、svnadmin.db 等文件
php server/install.php
#如果之前在配置文件 config/database.php 切换了MySQL数据库,升级后需要重新配置下,这个问题会在下个版本修复
```
- 启动后台程序
```

Loading…
Cancel
Save