mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-01-31 14:08:06 +08:00
fix: 解决应用创建没有默认网络创建失败的BUG (#369)
This commit is contained in:
parent
36f2a3eb4b
commit
0861b30a7b
@ -6,6 +6,7 @@ import (
|
|||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/1Panel-dev/1Panel/backend/buserr"
|
"github.com/1Panel-dev/1Panel/backend/buserr"
|
||||||
|
"github.com/1Panel-dev/1Panel/backend/utils/docker"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
@ -166,6 +167,9 @@ func (a AppService) GetAppDetail(appId uint, version string) (response.AppDetail
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a AppService) Install(ctx context.Context, req request.AppInstallCreate) (*model.AppInstall, error) {
|
func (a AppService) Install(ctx context.Context, req request.AppInstallCreate) (*model.AppInstall, error) {
|
||||||
|
if err := docker.CreateDefaultDockerNetwork(); err != nil {
|
||||||
|
return nil, buserr.WithDetail(constant.Err1PanelNetworkFailed, err.Error(), nil)
|
||||||
|
}
|
||||||
if list, _ := appInstallRepo.ListBy(commonRepo.WithByName(req.Name)); len(list) > 0 {
|
if list, _ := appInstallRepo.ListBy(commonRepo.WithByName(req.Name)); len(list) > 0 {
|
||||||
return nil, buserr.New(constant.ErrNameIsExist)
|
return nil, buserr.New(constant.ErrNameIsExist)
|
||||||
}
|
}
|
||||||
|
@ -50,15 +50,16 @@ var (
|
|||||||
|
|
||||||
// app
|
// app
|
||||||
var (
|
var (
|
||||||
ErrPortInUsed = "ErrPortInUsed"
|
ErrPortInUsed = "ErrPortInUsed"
|
||||||
ErrAppLimit = "ErrAppLimit"
|
ErrAppLimit = "ErrAppLimit"
|
||||||
ErrAppRequired = "ErrAppRequired"
|
ErrAppRequired = "ErrAppRequired"
|
||||||
ErrFileCanNotRead = "ErrFileCanNotRead"
|
ErrFileCanNotRead = "ErrFileCanNotRead"
|
||||||
ErrFileToLarge = "ErrFileToLarge"
|
ErrFileToLarge = "ErrFileToLarge"
|
||||||
ErrNotInstall = "ErrNotInstall"
|
ErrNotInstall = "ErrNotInstall"
|
||||||
ErrPortInOtherApp = "ErrPortInOtherApp"
|
ErrPortInOtherApp = "ErrPortInOtherApp"
|
||||||
ErrDbUserNotValid = "ErrDbUserNotValid"
|
ErrDbUserNotValid = "ErrDbUserNotValid"
|
||||||
ErrUpdateBuWebsite = "ErrUpdateBuWebsite"
|
ErrUpdateBuWebsite = "ErrUpdateBuWebsite"
|
||||||
|
Err1PanelNetworkFailed = "Err1PanelNetworkFailed"
|
||||||
)
|
)
|
||||||
|
|
||||||
//website
|
//website
|
||||||
|
@ -26,6 +26,7 @@ ErrPortInOtherApp: "{{ .port }} port already in use by {{ .apps }}"
|
|||||||
ErrDbUserNotValid: "Stock database, username and password do not match!"
|
ErrDbUserNotValid: "Stock database, username and password do not match!"
|
||||||
ErrDockerComposeNotValid: "docker-compose file format error!"
|
ErrDockerComposeNotValid: "docker-compose file format error!"
|
||||||
ErrUpdateBuWebsite: 'The application was updated successfully, but the modification of the website configuration file failed, please check the configuration!'
|
ErrUpdateBuWebsite: 'The application was updated successfully, but the modification of the website configuration file failed, please check the configuration!'
|
||||||
|
Err1PanelNetworkFailed: 'Default container network creation failed! {{ .detail }}'
|
||||||
|
|
||||||
#file
|
#file
|
||||||
ErrFileCanNotRead: "File can not read"
|
ErrFileCanNotRead: "File can not read"
|
||||||
|
@ -26,6 +26,7 @@ ErrPortInOtherApp: "{{ .port }} 端口已被 {{ .apps }}占用!"
|
|||||||
ErrDbUserNotValid: "存量数据库,用户名密码不匹配!"
|
ErrDbUserNotValid: "存量数据库,用户名密码不匹配!"
|
||||||
ErrDockerComposeNotValid: "docker-compose 文件格式错误"
|
ErrDockerComposeNotValid: "docker-compose 文件格式错误"
|
||||||
ErrUpdateBuWebsite: '应用更新成功,但是网站配置文件修改失败,请检查配置!'
|
ErrUpdateBuWebsite: '应用更新成功,但是网站配置文件修改失败,请检查配置!'
|
||||||
|
Err1PanelNetworkFailed: '默认容器网络创建失败!{{ .detail }}'
|
||||||
|
|
||||||
#file
|
#file
|
||||||
ErrFileCanNotRead: "此文件不支持预览"
|
ErrFileCanNotRead: "此文件不支持预览"
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/1Panel-dev/1Panel/backend/utils/docker"
|
||||||
"path"
|
"path"
|
||||||
|
|
||||||
"github.com/1Panel-dev/1Panel/backend/constant"
|
"github.com/1Panel-dev/1Panel/backend/constant"
|
||||||
"github.com/1Panel-dev/1Panel/backend/global"
|
"github.com/1Panel-dev/1Panel/backend/global"
|
||||||
"github.com/1Panel-dev/1Panel/backend/utils/docker"
|
|
||||||
"github.com/1Panel-dev/1Panel/backend/utils/files"
|
"github.com/1Panel-dev/1Panel/backend/utils/files"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ func Init() {
|
|||||||
createDir(fileOp, dir)
|
createDir(fileOp, dir)
|
||||||
}
|
}
|
||||||
|
|
||||||
createDefaultDockerNetwork()
|
_ = docker.CreateDefaultDockerNetwork()
|
||||||
}
|
}
|
||||||
|
|
||||||
func createDir(fileOp files.FileOp, dirPath string) {
|
func createDir(fileOp files.FileOp, dirPath string) {
|
||||||
@ -30,17 +30,3 @@ func createDir(fileOp files.FileOp, dirPath string) {
|
|||||||
_ = fileOp.CreateDir(dirPath, 0755)
|
_ = fileOp.CreateDir(dirPath, 0755)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func createDefaultDockerNetwork() {
|
|
||||||
cli, err := docker.NewClient()
|
|
||||||
if err != nil {
|
|
||||||
global.LOG.Errorf("init docker client error", err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if !cli.NetworkExist("1panel-network") {
|
|
||||||
if err := cli.CreateNetwork("1panel-network"); err != nil {
|
|
||||||
global.LOG.Errorf("init docker client error", err.Error())
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -2,6 +2,7 @@ package docker
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"github.com/1Panel-dev/1Panel/backend/global"
|
||||||
|
|
||||||
"github.com/docker/docker/api/types"
|
"github.com/docker/docker/api/types"
|
||||||
"github.com/docker/docker/api/types/filters"
|
"github.com/docker/docker/api/types/filters"
|
||||||
@ -73,3 +74,18 @@ func (c Client) NetworkExist(name string) bool {
|
|||||||
}
|
}
|
||||||
return len(networks) > 0
|
return len(networks) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func CreateDefaultDockerNetwork() error {
|
||||||
|
cli, err := NewClient()
|
||||||
|
if err != nil {
|
||||||
|
global.LOG.Errorf("init docker client error %s", err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !cli.NetworkExist("1panel-network") {
|
||||||
|
if err := cli.CreateNetwork("1panel-network"); err != nil {
|
||||||
|
global.LOG.Errorf("create default docker network error %s", err.Error())
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user