Former-commit-id: a43fd30923f651994a591ed80a0b7d692e7a5d48
TangShanKaiPing
wanggang 5 years ago
parent c216a8bade
commit 7aef8dc9e8

@ -2,92 +2,161 @@
<li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Home")" href="@Url.Action("Index","Home")"><i class="nav-icon fas fa-tachometer-alt"></i><p>首页</p></a></li>
@if (User.IsInRole("Read-Setting")) @if (User.IsInRole("Read-Setting"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon ion ion-md-hammer"></i><p>设置</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Setting")" href="@Url.Action("Index","Setting")"><i class="nav-icon fa fa-wrench"></i><p>设置</p></a></li>
} }
@if (User.IsInRole("Read-User") || User.IsInRole("Read-Role") || User.IsInRole("Read-Permission"))
{
<li class="nav-item has-treeview @GetClass2("User","Role","Permission")">
<a href="javascript:;" class="nav-link @GetClass("User","Role","Permission")">
<i class="fa fa-user"></i>
<p>用户管理<i class="right fas fa-angle-left"></i></p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-User")) @if (User.IsInRole("Read-User"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class=" nav-icon far fa-user"></i><p>用户管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("User")" href="@Url.Action("Index","User")"><i class="far fa-circle nav-icon"></i><p>用户管理</p></a></li>
} }
@if (User.IsInRole("Read-Role")) @if (User.IsInRole("Read-Role"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="nav-icon ion ion-md-glasses"></i><p>角色管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Role")" href="@Url.Action("Index","Role")"><i class="far fa-circle nav-icon"></i><p>角色管理</p></a></li>
} }
@if (User.IsInRole("Read-Permission")) @if (User.IsInRole("Read-Permission"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="nav-icon fas fa-key"></i><p>权限管理</p></a></li> <li class="nav-item"><a class="nav-link @GetClass("Permission")" href="@Url.Action("Index","Permission")"><i class="far fa-circle nav-icon"></i><p>权限管理</p></a></li>
}
</ul>
</li>
} }
@if (User.IsInRole("Read-Product") || User.IsInRole("Read-Api") || User.IsInRole("Read-Parameter"))
{
<li class="nav-item has-treeview @GetClass2("Product","Api","Parameter")">
<a href="javascript:;" class="nav-link @GetClass("Product","Api","Parameter")">
<i class="fa fa-folder"></i>
<p>
产品管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Product")) @if (User.IsInRole("Read-Product"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="nav-icon fa fa-leaf"></i><span>产品管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Product")" href="@Url.Action("Index","Product")"><i class="far fa-circle nav-icon"></i><span>产品管理</span></a></li>
} }
@if (User.IsInRole("Read-Api")) @if (User.IsInRole("Read-Api"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="nav-icon fa fa-plug"></i><span>接口管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Api")" href="@Url.Action("Index","Api")"><i class="far fa-circle nav-icon"></i><span>接口管理</span></a></li>
} }
@if (User.IsInRole("Read-Parameter")) @if (User.IsInRole("Read-Parameter"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="nav-icon far fa-circle"></i><span>参数管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Parameter")" href="@Url.Action("Index","Parameter")"><i class="far fa-circle nav-icon"></i><span>参数管理</span></a></li>
} }
@if (User.IsInRole("Read-Node")) </ul>
{ </li>
<li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="nav-icon fa fa-home"></i><span>节点管理</span></a></li>
} }
@if (User.IsInRole("Read-NodeCategory")) @if (User.IsInRole("Read-Node") || User.IsInRole("Read-Device") || User.IsInRole("Read-Data") || User.IsInRole("Read-Command"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-cubes"></i><span>节点分类管理</span></a></li> <li class="nav-item has-treeview @GetClass2("Node","Device","Data","Command")">
} <a href="javascript:;" class="nav-link @GetClass("Node","Device","Data","Command")">
@if (User.IsInRole("Read-Organ")) <i class="fa fa-cube"></i>
<p>
节点管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Node"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-home"></i><span>节点机构管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Node")" href="@Url.Action("Index","Node")"><i class="far fa-circle nav-icon"></i><span>节点管理</span></a></li>
} }
@if (User.IsInRole("Read-Device")) @if (User.IsInRole("Read-Device"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="nav-icon fa fa-tv"></i><span>设备管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Device")" href="@Url.Action("Index","Device")"><i class="far fa-circle nav-icon"></i><span>设备管理</span></a></li>
} }
@if (User.IsInRole("Read-Data")) @if (User.IsInRole("Read-Data"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="nav-icon fa fa-database"></i><span>数据管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Data")" href="@Url.Action("Index","Data")"><i class="far fa-circle nav-icon"></i><span>数据管理</span></a></li>
}
@if (User.IsInRole("Read-LiveRecord"))
{
<li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li>
} }
@if (User.IsInRole("Read-Command")) @if (User.IsInRole("Read-Command"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="nav-icon far fa-circle"></i><span>设备命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Command")" href="@Url.Action("Index","Command")"><i class="far fa-circle nav-icon"></i><span>设备命令管理</span></a></li>
} }
</ul>
</li>
}
@if (User.IsInRole("Read-Scene") || User.IsInRole("Read-SceneCommand") || User.IsInRole("Read-SceneTimer") || User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item has-treeview @GetClass2("Scene","SceneCommand","SceneTimer","SceneTigger")">
<a href="javascript:;" class="nav-link @GetClass("Scene","SceneCommand","SceneTimer","SceneTigger")">
<i class="fa fa-archive"></i>
<p>
节点场景管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Scene")) @if (User.IsInRole("Read-Scene"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="nav-icon fa fa-list-ol"></i><span>场景管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("Scene")" href="@Url.Action("Index","Scene")"><i class="far fa-circle nav-icon"></i><span>场景管理</span></a></li>
} }
@if (User.IsInRole("Read-SceneCommand")) @if (User.IsInRole("Read-SceneCommand"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="nav-icon far fa-circle"></i><span>场景命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneCommand")" href="@Url.Action("Index","SceneCommand")"><i class="far fa-circle nav-icon"></i><span>场景命令管理</span></a></li>
} }
@if (User.IsInRole("Read-SceneTimer")) @if (User.IsInRole("Read-SceneTimer"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="nav-icon far fa-clock"></i><span>场景定时器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneTimer")" href="@Url.Action("Index","SceneTimer")"><i class="far fa-circle nav-icon"></i><span>定时器管理</span></a></li>
} }
@if (User.IsInRole("Read-SceneTigger")) @if (User.IsInRole("Read-SceneTigger"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="nav-icon fa fa-fire"></i><span>场景触发器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("SceneTigger")" href="@Url.Action("Index","SceneTigger")"><i class="far fa-circle nav-icon"></i><span>触发器管理</span></a></li>
} }
</ul>
</li>
}
@if (User.IsInRole("Read-Scene") || User.IsInRole("Read-SceneCommand") || User.IsInRole("Read-SceneTimer") || User.IsInRole("Read-SceneTigger"))
{
<li class="nav-item has-treeview @GetClass2("GlobalScene","GlobalSceneCommand","GlobalSceneTimer","GlobalSceneTigger")">
<a href="javascript:;" class="nav-link @GetClass("GlobalScene","GlobalSceneCommand","GlobalSceneTimer","GlobalSceneTigger")">
<i class="fa fa-laptop"></i>
<p>
平台场景管理
<i class="right fas fa-angle-left"></i>
</p>
</a>
<ul class="nav nav-treeview">
@if (User.IsInRole("Read-Scene")) @if (User.IsInRole("Read-Scene"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="nav-icon fa fa-list-ol"></i><span>平台场景管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalScene")" href="@Url.Action("Index","GlobalScene")"><i class="far fa-circle nav-icon"></i><span>场景管理</span></a></li>
} }
@if (User.IsInRole("Read-SceneCommand")) @if (User.IsInRole("Read-SceneCommand"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="nav-icon far fa-circle"></i><span>平台场景命令管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalSceneCommand")" href="@Url.Action("Index","GlobalSceneCommand")"><i class="far fa-circle nav-icon"></i><span>场景命令管理</span></a></li>
} }
@if (User.IsInRole("Read-SceneTimer")) @if (User.IsInRole("Read-SceneTimer"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="nav-icon far fa-clock"></i><span>平台场景定时器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTimer")" href="@Url.Action("Index","GlobalSceneTimer")"><i class="far fa-circle nav-icon"></i><span>定时器管理</span></a></li>
} }
@if (User.IsInRole("Read-SceneTigger")) @if (User.IsInRole("Read-SceneTigger"))
{ {
<li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="nav-icon fa fa-fire"></i><span>平台场景触发器管理</span></a></li> <li class="nav-item"><a class="nav-link @GetClass("GlobalSceneTigger")" href="@Url.Action("Index","GlobalSceneTigger")"><i class="far fa-circle nav-icon"></i><span>触发器管理</span></a></li>
} }
</ul>
</li>
}
@if (User.IsInRole("Read-NodeCategory"))
{
<li class="nav-item"><a class="nav-link @GetClass("NodeCategory")" href="@Url.Action("Index","NodeCategory")"><i class="nav-icon fa fa-leaf"></i><span>节点分类管理</span></a></li>
}
@if (User.IsInRole("Read-Organ"))
{
<li class="nav-item"><a class="nav-link @GetClass("Organ")" href="@Url.Action("Index","Organ")"><i class="nav-icon fa fa-sitemap"></i><span>节点机构管理</span></a></li>
}
@if (User.IsInRole("Read-LiveRecord"))
{
<li class="nav-item"><a class="nav-link @GetClass("LiveRecord")" href="@Url.Action("Index","LiveRecord")"><i class="nav-icon fa fa-camera"></i><span>回放管理</span></a></li>
}
<li class="nav-item"><a class="nav-link" href="/JobServer/job"><i class="nav-icon fa fa-clock"></i><span>平台定时器监控</span></a></li>
</ul> </ul>
@functions{ @functions{
@ -95,12 +164,17 @@
{ {
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower())) if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{ {
if (controllers.Length > 1)
{
return "active open";
}
return "active"; return "active";
} }
return ""; return "";
} }
public string GetClass2(params string[] controllers)
{
if (controllers.Select(o => o.ToLower()).Contains(this.ViewContext.RouteData.Values["controller"].ToString().ToLower()))
{
return "menu-open";
}
return "";
}
} }

@ -4,23 +4,23 @@
}, },
"ConnectionStrings": { "ConnectionStrings": {
"postgresql": "User ID=root;Host=postgresql;Port=26257;Database=iotcenter;CommandTimeout=120", "postgresql": "User ID=root;Host=postgresql;Port=26257;Database=iotcenter;CommandTimeout=120",
"mysql": "Server=mysql;Port=3306;Database=iotcenter;Uid=root;Pwd=root;", "mysql": "Server=172.172.0.30;Port=3306;Database=iotcenter;Uid=root;Pwd=root;",
"redis": "redis:6379,allowAdmin=true", "redis": "redis:6379,allowAdmin=true",
"srs": "http://srs:1985", "srs": "http://172.172.0.60:1985",
"JobServer": "http://jobserver/JobServer", "JobServer": "http://172.172.0.10/JobServer",
"JobCallBack": "http://iotcenter/IoTCenter/api/v1/Api/ExecTimer" "JobCallBack": "http://172.172.0.10/IoTCenter/api/v1/Api/ExecTimer"
}, },
"influxdb": { "influxdb": {
"url": "http://influxdb:8086", "url": "http://172.172.0.50:8086",
"usr": "admin", "usr": "admin",
"pwd": "admin" "pwd": "admin"
}, },
"logserver": { "logserver": {
"influxdb": { "influxdb": {
"address": "http://influxdb" "address": "http://172.172.0.50"
} }
}, },
"minio": { "minio": {
"endpoint": "minio:9000" "endpoint": " 172.172.0.20:9000"
} }
} }

@ -1,5 +1,5 @@
{ {
"ConnectionStrings": { "ConnectionStrings": {
"HangfireConnection": "Server=mysql;Port=3306;Database=jobserver;Uid=root;Pwd=root;Allow User Variables=True;" "HangfireConnection": "Server=172.172.0.30;Port=3306;Database=jobserver;Uid=root;Pwd=root;Allow User Variables=True;"
} }
} }

@ -4,10 +4,10 @@
}, },
"ConnectionStrings": { "ConnectionStrings": {
"postgresql": "User ID=root;Host=postgresql;Port=26257;Database=usercenter;CommandTimeout=120", "postgresql": "User ID=root;Host=postgresql;Port=26257;Database=usercenter;CommandTimeout=120",
"mysql": "Server=mysql;Port=3306;Database=usercenter;Uid=root;Pwd=root;", "mysql": "Server=172.172.0.30;Port=3306;Database=usercenter;Uid=root;Pwd=root;",
"redis": "redis:6379,allowAdmin=true" "redis": "172.172.0.40:6379,allowAdmin=true"
}, },
"minio": { "minio": {
"endpoint": "minio:9000" "endpoint": "172.172.0.20:9000"
} }
} }

@ -1,4 +1,4 @@
using System.Reflection; using System.Reflection;
[assembly: AssemblyVersion("1.0.0.0")] [assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0.602")] [assembly: AssemblyInformationalVersion("1.0.0.603")]

@ -4,3 +4,6 @@ log
docker\log\ docker\log\
docker\data\ docker\data\
docker-compose.override.yml docker-compose.override.yml
debug.start.ps1
debug.stop.ps1
nginx.development.conf

@ -42,6 +42,8 @@ sudo dpkg -i ~/publish/files/supervisor_3.3.5-1_all.deb
#config apps #config apps
sudo cp -f ~/publish/supervisord.conf /etc/supervisor/supervisord.conf sudo cp -f ~/publish/supervisord.conf /etc/supervisor/supervisord.conf
sudo chmod 755 ~/publish/apps/IoTNode/IoTNode sudo chmod 755 ~/publish/apps/IoTNode/IoTNode
sudo chmod 755 ~/publish/apps/frp/frpc
sudo chmod 755 ~/publish/apps/srs/objs/srs
sudo chmod 755 ~/publish/apps/IoTNode/wwwroot/ffmpeg-linux-arm sudo chmod 755 ~/publish/apps/IoTNode/wwwroot/ffmpeg-linux-arm
sudo chmod 755 ~/publish/apps/IoTNode/wwwroot/ffmpeg-linux-arm64 sudo chmod 755 ~/publish/apps/IoTNode/wwwroot/ffmpeg-linux-arm64

@ -1 +0,0 @@
docker-compose up -d --remove-orphans

@ -11,6 +11,9 @@ services:
volumes: volumes:
- ../../../../projects/WebMVC/wwwroot:/usr/share/nginx/html - ../../../../projects/WebMVC/wwwroot:/usr/share/nginx/html
- ./docker/log/webmvc:/var/log/nginx - ./docker/log/webmvc:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.110
webspa: webspa:
image: nginx:1.18 image: nginx:1.18
restart: always restart: always
@ -21,6 +24,9 @@ services:
volumes: volumes:
- ../../../../projects/WebSPA/wwwroot:/usr/share/nginx/html - ../../../../projects/WebSPA/wwwroot:/usr/share/nginx/html
- ./docker/log/webspa:/var/log/nginx - ./docker/log/webspa:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.120
nginx: nginx:
volumes: volumes:
- ./docker/conf/nginx/nginx.development.conf:/etc/nginx/nginx.conf - ./docker/conf/nginx/nginx.development.conf:/etc/nginx/nginx.conf

@ -1,4 +1,5 @@
#docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d #docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
#docker-compose down --remove-orphans
version: "3.8" version: "3.8"
services: services:
usercenter: usercenter:
@ -15,6 +16,9 @@ services:
volumes: volumes:
- ./apps/UserCenter:/UserCenter - ./apps/UserCenter:/UserCenter
- ./docker/log/UserCenter:/UserCenter/logs - ./docker/log/UserCenter:/UserCenter/logs
networks:
default:
ipv4_address: 172.172.0.70
iotcenter: iotcenter:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always restart: always
@ -30,6 +34,9 @@ services:
volumes: volumes:
- ./apps/IotCenter:/IoTCenter - ./apps/IotCenter:/IoTCenter
- ./docker/log/IotCenter:/IotCenter/logs - ./docker/log/IotCenter:/IotCenter/logs
networks:
default:
ipv4_address: 172.172.0.80
jobserver: jobserver:
image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal image: mcr.microsoft.com/dotnet/core/runtime-deps:3.1-focal
restart: always restart: always
@ -44,6 +51,9 @@ services:
volumes: volumes:
- ./apps/JobServer:/JobServer - ./apps/JobServer:/JobServer
- ./docker/log/JobServer:/JobServer/logs - ./docker/log/JobServer:/JobServer/logs
networks:
default:
ipv4_address: 172.172.0.90
webmvc: webmvc:
image: nginx:1.18 image: nginx:1.18
restart: always restart: always
@ -54,6 +64,9 @@ services:
volumes: volumes:
- ./apps/WebMVC/wwwroot:/usr/share/nginx/html - ./apps/WebMVC/wwwroot:/usr/share/nginx/html
- ./docker/log/webmvc:/var/log/nginx - ./docker/log/webmvc:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.110
webspa: webspa:
image: nginx:1.18 image: nginx:1.18
restart: always restart: always
@ -64,6 +77,9 @@ services:
volumes: volumes:
- ./apps/WebSPA/wwwroot:/usr/share/nginx/html - ./apps/WebSPA/wwwroot:/usr/share/nginx/html
- ./docker/log/webspa:/var/log/nginx - ./docker/log/webspa:/var/log/nginx
networks:
default:
ipv4_address: 172.172.0.120
nginx: nginx:
depends_on: depends_on:
- usercenter - usercenter

@ -1,15 +1,11 @@
version: "3.8" version: "3.8"
networks: networks:
default: default:
driver: bridge
ipam:
config:
- subnet: 172.172.0.0/24
services: services:
portainer:
image: portainer/portainer:1.23.2
restart: always
ports:
- 9002:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./docker/data/portainer:/data
minio: minio:
image: minio/minio:RELEASE.2020-05-29T14-08-49Z image: minio/minio:RELEASE.2020-05-29T14-08-49Z
restart: always restart: always
@ -21,6 +17,9 @@ services:
- 9000:9000 - 9000:9000
volumes: volumes:
- ./docker/data/minio:/data - ./docker/data/minio:/data
networks:
default:
ipv4_address: 172.172.0.20
mysql: mysql:
image: mysql:8.0 image: mysql:8.0
restart: always restart: always
@ -28,42 +27,21 @@ services:
- MYSQL_ROOT_PASSWORD=root - MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=jobserver - MYSQL_DATABASE=jobserver
command: --default-authentication-plugin=mysql_native_password command: --default-authentication-plugin=mysql_native_password
healthcheck:
test: "/usr/bin/mysql --user=root --password=root --execute \"SHOW DATABASES;\""
interval: 3s
timeout: 3s
retries: 10
ports: ports:
- 3306:3306 - 3306:3306
volumes: volumes:
- ./docker/data/mysql:/var/lib/mysql - ./docker/data/mysql:/var/lib/mysql
phpmyadmin: networks:
image: phpmyadmin/phpmyadmin default:
restart: always ipv4_address: 172.172.0.30
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
ports:
- 9003:80
depends_on:
- mysql
redis: redis:
image: redis:6.0 image: redis:6.0
restart: always restart: always
ports: ports:
- 6379:6379 - 6379:6379
phpredisadmin: networks:
image: erikdubbelboer/phpredisadmin default:
restart: always ipv4_address: 172.172.0.40
environment:
- REDIS_1_HOST=redis
- REDIS_1_PORT=6379
- ADMIN_USER=admin
- ADMIN_PASS=123456
ports:
- 9004:80
depends_on:
- redis
influxdb: influxdb:
image: influxdb:1.8 image: influxdb:1.8
restart: always restart: always
@ -76,18 +54,9 @@ services:
- 8086:8086 - 8086:8086
volumes: volumes:
- ./docker/data/influxdb:/var/lib/influxdb - ./docker/data/influxdb:/var/lib/influxdb
influxdb-web: networks:
image: influxdb:1.2.4 default:
restart: always ipv4_address: 172.172.0.50
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
- 8083:8083
depends_on:
- influxdb
srs: srs:
image: ossrs/srs:v4.0.23 image: ossrs/srs:v4.0.23
environment: environment:
@ -101,6 +70,9 @@ services:
- ./docker/conf/srs/srs.conf:/usr/local/srs/conf/srs.conf - ./docker/conf/srs/srs.conf:/usr/local/srs/conf/srs.conf
- ./docker/log/srs:/usr/local/srs/objs/log - ./docker/log/srs:/usr/local/srs/objs/log
- ./docker/data/srs:/usr/local/srs/objs/nginx/html/video - ./docker/data/srs:/usr/local/srs/objs/nginx/html/video
networks:
default:
ipv4_address: 172.172.0.60
nginx: nginx:
image: nginx:1.18 image: nginx:1.18
restart: always restart: always
@ -117,4 +89,60 @@ services:
depends_on: depends_on:
- minio - minio
- mysql - mysql
networks:
default:
ipv4_address: 172.172.0.10
portainer:
image: portainer/portainer:1.23.2
restart: always
ports:
- 9002:9000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./docker/data/portainer:/data
networks:
default:
ipv4_address: 172.172.0.101
phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
environment:
- PMA_HOST=mysql
- PMA_PORT=3306
ports:
- 9003:80
depends_on:
- mysql
networks:
default:
ipv4_address: 172.172.0.102
phpredisadmin:
image: erikdubbelboer/phpredisadmin
restart: always
environment:
- REDIS_1_HOST=redis
- REDIS_1_PORT=6379
- ADMIN_USER=admin
- ADMIN_PASS=123456
ports:
- 9004:80
depends_on:
- redis
networks:
default:
ipv4_address: 172.172.0.103
influxdb-web:
image: influxdb:1.2.4
restart: always
environment:
TZ: "Asia/Shanghai"
INFLUXDB_ADMIN_ENABLED: "true"
INFLUXDB_ADMIN_USER: admin
INFLUXDB_ADMIN_PASSWORD: admin
ports:
- 8083:8083
depends_on:
- influxdb
networks:
default:
ipv4_address: 172.172.0.104

@ -22,44 +22,44 @@ http {
location / { location / {
if ($http_user_agent ~* "(mobile|android|ipad|iphone|ipod|tablet)") { if ($http_user_agent ~* "(mobile|android|ipad|iphone|ipod|tablet)") {
proxy_pass http://webspa; proxy_pass http://172.172.0.120;
break; break;
} }
proxy_pass http://webmvc/; proxy_pass http://172.172.0.110/;
} }
location ^~ /dfs/ { location ^~ /dfs/ {
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://minio:9000/; proxy_pass http://172.172.0.20:9000/;
} }
location ^~ /live/ { location ^~ /live/ {
proxy_pass http://srs:8080/live/; proxy_pass http://172.172.0.60:8080/live/;
} }
location ^~ /video/ { location ^~ /video/ {
proxy_pass http://srs:8080/video/; proxy_pass http://172.172.0.60:8080/video/;
} }
location ^~ /UserCenter/ { location ^~ /UserCenter/ {
proxy_pass http://usercenter/UserCenter/; proxy_pass http://172.172.0.70/UserCenter/;
} }
location ^~ /IoTCenter/ { location ^~ /IoTCenter/ {
proxy_pass http://iotcenter/IoTCenter/; proxy_pass http://172.172.0.80/IoTCenter/;
} }
location ^~ /IoTCenter/hub { location ^~ /IoTCenter/hub {
proxy_pass http://iotcenter/IoTCenter/hub; proxy_pass http://172.172.0.80/IoTCenter/hub;
proxy_http_version 1.1; proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade; proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade"; proxy_set_header Connection "upgrade";
} }
location ^~ /JobServer/ { location ^~ /JobServer/ {
proxy_pass http://jobserver/JobServer/; proxy_pass http://172.172.0.90/JobServer/;
} }
error_page 500 502 503 504 /50x.html; error_page 500 502 503 504 /50x.html;

@ -1 +1 @@
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d docker-compose -f docker-compose.yml -f docker-compose.prod.yml up --remove-orphans -d

@ -1 +1 @@
docker-compose down docker-compose down --remove-orphans
Loading…
Cancel
Save