Parcourir la source

Dev (#298)

* fix bug

* updata UI

* 0.3.2

### Added

- [Files] Files can now be selected multiple files and downloaded, deleted, moved, etc.
- [Apps] Support to modify the application opening address.([#204](https://github.com/IceWhaleTech/CasaOS/issues/204))

### Changed

- [Apps] Hide the display of non-essential environment variables in the application.
- [System] Network, disk, cpu, memory, etc. information is modified to be pushed via socket.
- [System] Optimize opening speed.([#214](https://github.com/IceWhaleTech/CasaOS/issues/214))
### Fixed

- [System] Fixed the problem that sync data cannot submit the device ID ([#68](https://github.com/IceWhaleTech/CasaOS/issues/68))
- [Files] Fixed the code editor center alignment display problem.([#210](https://github.com/IceWhaleTech/CasaOS/issues/210))
- [Files] Fixed the problem of wrong name when downloading files.([#240](https://github.com/IceWhaleTech/CasaOS/issues/240))
- [System] Fixed the network display as a negative number problem.([#224](https://github.com/IceWhaleTech/CasaOS/issues/224))

* Modify log help class

* Fix some bugs in 0.3.2

* Solve the operation file queue problem

* Exclude web folders

* update UI

* add cancel file operate

* Update UI

* Merge sockets to transfer data

* Conflict Resolution

* Update send data interval

* Update UI

* fixed bug

- Fix the problem of application opening failure on non-80 ports
- Modify port failure problem
- Modify environment variables disappearing problem

* update version function

* Fix version update issues

* fixed bug

- [System] Fixed the issue of widgets displaying wrongly on mobile devices.
- [App] Fix the problem of application opening failure on non-80 ports ([#283](https://github.com/IceWhaleTech/CasaOS/issues/283) [#280](https://github.com/IceWhaleTech/CasaOS/issues/280))
- [System] Modify port failure problem ([#282](https://github.com/IceWhaleTech/CasaOS/issues/282))
- [App]Modify environment variables disappearing problem([#284](https://github.com/IceWhaleTech/CasaOS/issues/284))
- [System]Fix no update alert([#278](https://github.com/IceWhaleTech/CasaOS/issues/278))
- [System] Fixed some bugs of application cpu usage and memory staging([#272]https://github.com/IceWhaleTech/CasaOS/issues/272)

* update UI

* Update CHANGELOG.md

* update app service

* update ui

* Fix application installation host mode error

* update ui

* Update UI
link il y a 3 ans
Parent
commit
f506d6ce49
11 fichiers modifiés avec 19 ajouts et 17 suppressions
  1. 2 1
      route/init.go
  2. 2 2
      route/v1/docker.go
  3. 4 3
      service/app.go
  4. 10 10
      service/docker.go
  5. 1 1
      web/index.html
  6. 0 0
      web/js/11.js
  7. 0 0
      web/js/12.js
  8. 0 0
      web/js/3.js
  9. 0 0
      web/js/4.js
  10. 0 0
      web/js/8.js
  11. 0 0
      web/js/app.js

+ 2 - 1
route/init.go

@@ -103,9 +103,10 @@ func installSyncthing(appId string) {
 	m.Ports = appInfo.Ports
 	m.Restart = "always"
 	m.Volumes = appInfo.Volumes
+	m.NetworkModel = appInfo.NetworkModel
 	m.Label = id
 	m.CustomId = id
-	containerId, err := service.MyService.Docker().DockerContainerCreate(dockerImage+":"+dockerImageVersion, m, appInfo.NetworkModel)
+	containerId, err := service.MyService.Docker().DockerContainerCreate(dockerImage+":"+dockerImageVersion, m)
 	if err != nil {
 		fmt.Println("container create error", err)
 		// create container error

+ 2 - 2
route/v1/docker.go

@@ -327,7 +327,7 @@ func InstallApp(c *gin.Context) {
 			time.Sleep(time.Second)
 		}
 
-		_, err = service.MyService.Docker().DockerContainerCreate(dockerImage+":"+dockerImageVersion, m, appInfo.NetworkModel)
+		_, err = service.MyService.Docker().DockerContainerCreate(dockerImage+":"+dockerImageVersion, m)
 		if err != nil {
 			//service.MyService.Redis().Set(id, "{\"id\"\""+id+"\",\"state\":false,\"message\":\""+err.Error()+"\",\"speed\":80}", 100)
 			notify := notify.Application{}
@@ -901,7 +901,7 @@ func UpdateSetting(c *gin.Context) {
 	service.MyService.Docker().DockerContainerUpdateName(id, id)
 	//service.MyService.Docker().DockerContainerRemove(id, true)
 
-	containerId, err := service.MyService.Docker().DockerContainerCreate(m.Image, m, m.NetworkModel)
+	containerId, err := service.MyService.Docker().DockerContainerCreate(m.Image, m)
 	if err != nil {
 		service.MyService.Docker().DockerContainerUpdateName(m.Label, id)
 		service.MyService.Docker().DockerContainerStart(id)

+ 4 - 3
service/app.go

@@ -479,10 +479,10 @@ func (a *appStruct) GetHardwareUsageSteam() {
 		if err != nil {
 			loger.Error("Failed to get container_list", zap.Any("err", err))
 		}
+		var temp sync.Map
 		var wg sync.WaitGroup
 		for _, v := range containers {
 			if v.State != "running" {
-				dataStats.Delete(v.ID)
 				continue
 			}
 			wg.Add(1)
@@ -490,7 +490,6 @@ func (a *appStruct) GetHardwareUsageSteam() {
 				defer wg.Done()
 				stats, err := cli.ContainerStats(ctx, v.ID, true)
 				if err != nil {
-					dataStats.Delete(v.ID)
 					return
 				}
 				decode := json.NewDecoder(stats.Body)
@@ -507,14 +506,16 @@ func (a *appStruct) GetHardwareUsageSteam() {
 				dockerStats.Icon = v.Labels["icon"]
 				dockerStats.Title = strings.ReplaceAll(v.Names[0], "/", "")
 
-				dataStats.Store(v.ID, dockerStats)
+				temp.Store(v.ID, dockerStats)
 				if i == 99 {
 					stats.Body.Close()
 				}
 			}(v, i)
 		}
 		wg.Wait()
+		dataStats = temp
 		isFinish = true
+
 		time.Sleep(time.Second * 1)
 	}
 	isFinish = false

+ 10 - 10
service/docker.go

@@ -45,7 +45,7 @@ import (
 type DockerService interface {
 	DockerPullImage(imageName string, icon, name string) error
 	IsExistImage(imageName string) bool
-	DockerContainerCreate(imageName string, m model.CustomizationPostData, net string) (containerId string, err error)
+	DockerContainerCreate(imageName string, m model.CustomizationPostData) (containerId string, err error)
 	DockerContainerCopyCreate(info *types.ContainerJSON) (containerId string, err error)
 	DockerContainerStart(name string) error
 	DockerContainerStats(name string) (string, error)
@@ -376,9 +376,9 @@ func (ds *dockerService) DockerContainerCopyCreate(info *types.ContainerJSON) (c
 //param mapPort 容器主端口映射到外部的端口
 //param tcp 容器其他tcp端口
 //param udp 容器其他udp端口
-func (ds *dockerService) DockerContainerCreate(imageName string, m model.CustomizationPostData, net string) (containerId string, err error) {
-	if len(net) == 0 {
-		net = "bridge"
+func (ds *dockerService) DockerContainerCreate(imageName string, m model.CustomizationPostData) (containerId string, err error) {
+	if len(m.NetworkModel) == 0 {
+		m.NetworkModel = "bridge"
 	}
 
 	cli, err := client2.NewClientWithOpts(client2.FromEnv)
@@ -402,7 +402,7 @@ func (ds *dockerService) DockerContainerCreate(imageName string, m model.Customi
 			tContainer, _ := strconv.Atoi(portMap.ContainerPort)
 			if tContainer > 0 {
 				ports[nat.Port(portMap.ContainerPort+"/tcp")] = struct{}{}
-				if net != "host" {
+				if m.NetworkModel != "host" {
 					portMaps[nat.Port(portMap.ContainerPort+"/tcp")] = []nat.PortBinding{{HostPort: portMap.CommendPort}}
 				}
 			}
@@ -411,7 +411,7 @@ func (ds *dockerService) DockerContainerCreate(imageName string, m model.Customi
 			tContainer, _ := strconv.Atoi(portMap.ContainerPort)
 			if tContainer > 0 {
 				ports[nat.Port(portMap.ContainerPort+"/tcp")] = struct{}{}
-				if net != "host" {
+				if m.NetworkModel != "host" {
 					portMaps[nat.Port(portMap.ContainerPort+"/tcp")] = []nat.PortBinding{{HostPort: portMap.CommendPort}}
 				}
 			}
@@ -419,7 +419,7 @@ func (ds *dockerService) DockerContainerCreate(imageName string, m model.Customi
 			uContainer, _ := strconv.Atoi(portMap.ContainerPort)
 			if uContainer > 0 {
 				ports[nat.Port(portMap.ContainerPort+"/udp")] = struct{}{}
-				if net != "host" {
+				if m.NetworkModel != "host" {
 					portMaps[nat.Port(portMap.ContainerPort+"/udp")] = []nat.PortBinding{{HostPort: portMap.CommendPort}}
 				}
 			}
@@ -428,7 +428,7 @@ func (ds *dockerService) DockerContainerCreate(imageName string, m model.Customi
 			uContainer, _ := strconv.Atoi(portMap.ContainerPort)
 			if uContainer > 0 {
 				ports[nat.Port(portMap.ContainerPort+"/udp")] = struct{}{}
-				if net != "host" {
+				if m.NetworkModel != "host" {
 					portMaps[nat.Port(portMap.ContainerPort+"/udp")] = []nat.PortBinding{{HostPort: portMap.CommendPort}}
 				}
 			}
@@ -541,7 +541,7 @@ func (ds *dockerService) DockerContainerCreate(imageName string, m model.Customi
 	config.Labels["protocol"] = m.Protocol
 	config.Labels["host"] = m.Host
 	//config.Labels["order"] = strconv.Itoa(MyService.App().GetCasaOSCount() + 1)
-	hostConfig := &container.HostConfig{Resources: res, Mounts: volumes, RestartPolicy: rp, NetworkMode: container.NetworkMode(net), Privileged: m.Privileged, CapAdd: m.CapAdd}
+	hostConfig := &container.HostConfig{Resources: res, Mounts: volumes, RestartPolicy: rp, NetworkMode: container.NetworkMode(m.NetworkModel), Privileged: m.Privileged, CapAdd: m.CapAdd}
 	//if net != "host" {
 	config.ExposedPorts = ports
 	hostConfig.PortBindings = portMaps
@@ -550,7 +550,7 @@ func (ds *dockerService) DockerContainerCreate(imageName string, m model.Customi
 	containerDb, err := cli.ContainerCreate(context.Background(),
 		config,
 		hostConfig,
-		&network.NetworkingConfig{EndpointsConfig: map[string]*network.EndpointSettings{net: {NetworkID: "", Aliases: []string{}}}},
+		&network.NetworkingConfig{EndpointsConfig: map[string]*network.EndpointSettings{m.NetworkModel: {NetworkID: "", Aliases: []string{}}}},
 		nil,
 		m.Label)
 	if err != nil {

+ 1 - 1
web/index.html

@@ -20,7 +20,7 @@
   <title>
     CasaOS
   </title>
-<link href="/ui/css/10.32be8789.css" rel="prefetch"><link href="/ui/css/11.dc77452d.css" rel="prefetch"><link href="/ui/css/16.1f93b660.css" rel="prefetch"><link href="/ui/css/17.046fd3d8.css" rel="prefetch"><link href="/ui/css/8.332ce37a.css" rel="prefetch"><link href="/ui/css/9.e1b97a16.css" rel="prefetch"><link href="/ui/js/0.js" rel="prefetch"><link href="/ui/js/1.js" rel="prefetch"><link href="/ui/js/10.js" rel="prefetch"><link href="/ui/js/11.js" rel="prefetch"><link href="/ui/js/12.js" rel="prefetch"><link href="/ui/js/13.js" rel="prefetch"><link href="/ui/js/14.js" rel="prefetch"><link href="/ui/js/15.js" rel="prefetch"><link href="/ui/js/16.js" rel="prefetch"><link href="/ui/js/17.js" rel="prefetch"><link href="/ui/js/18.js" rel="prefetch"><link href="/ui/js/2.js" rel="prefetch"><link href="/ui/js/3.js" rel="prefetch"><link href="/ui/js/4.js" rel="prefetch"><link href="/ui/js/5.js" rel="prefetch"><link href="/ui/js/6.js" rel="prefetch"><link href="/ui/js/7.js" rel="prefetch"><link href="/ui/js/8.js" rel="prefetch"><link href="/ui/js/9.js" rel="prefetch"><link href="/ui/css/app.87e82b7f.css" rel="preload" as="style"><link href="/ui/css/vendors~app.a048753d.css" rel="preload" as="style"><link href="/ui/js/app.js" rel="preload" as="script"><link href="/ui/js/vendors~app.js" rel="preload" as="script"><link href="/ui/css/vendors~app.a048753d.css" rel="stylesheet"><link href="/ui/css/app.87e82b7f.css" rel="stylesheet"></head>
+<link href="/ui/css/10.d72d6157.css" rel="prefetch"><link href="/ui/css/11.f8326b27.css" rel="prefetch"><link href="/ui/css/16.a16d5119.css" rel="prefetch"><link href="/ui/css/17.cf8c898a.css" rel="prefetch"><link href="/ui/css/8.8acf69a4.css" rel="prefetch"><link href="/ui/css/9.e57f27f9.css" rel="prefetch"><link href="/ui/js/0.js" rel="prefetch"><link href="/ui/js/1.js" rel="prefetch"><link href="/ui/js/10.js" rel="prefetch"><link href="/ui/js/11.js" rel="prefetch"><link href="/ui/js/12.js" rel="prefetch"><link href="/ui/js/13.js" rel="prefetch"><link href="/ui/js/14.js" rel="prefetch"><link href="/ui/js/15.js" rel="prefetch"><link href="/ui/js/16.js" rel="prefetch"><link href="/ui/js/17.js" rel="prefetch"><link href="/ui/js/18.js" rel="prefetch"><link href="/ui/js/2.js" rel="prefetch"><link href="/ui/js/3.js" rel="prefetch"><link href="/ui/js/4.js" rel="prefetch"><link href="/ui/js/5.js" rel="prefetch"><link href="/ui/js/6.js" rel="prefetch"><link href="/ui/js/7.js" rel="prefetch"><link href="/ui/js/8.js" rel="prefetch"><link href="/ui/js/9.js" rel="prefetch"><link href="/ui/css/app.fccf59b0.css" rel="preload" as="style"><link href="/ui/css/vendors~app.8a2c28d7.css" rel="preload" as="style"><link href="/ui/js/app.js" rel="preload" as="script"><link href="/ui/js/vendors~app.js" rel="preload" as="script"><link href="/ui/css/vendors~app.8a2c28d7.css" rel="stylesheet"><link href="/ui/css/app.fccf59b0.css" rel="stylesheet"></head>
 
 <body>
   <noscript>

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
web/js/11.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
web/js/12.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
web/js/3.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
web/js/4.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
web/js/8.js


Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
web/js/app.js


Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff