mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-01-19 08:19:15 +08:00
parent
0d04f07f2a
commit
2f147dde13
@ -201,9 +201,8 @@ func (u *DockerService) UpdateConf(req dto.SettingUpdate) error {
|
|||||||
}
|
}
|
||||||
if len(daemonMap) == 0 {
|
if len(daemonMap) == 0 {
|
||||||
_ = os.Remove(constant.DaemonJsonPath)
|
_ = os.Remove(constant.DaemonJsonPath)
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -218,9 +217,8 @@ func (u *DockerService) UpdateConf(req dto.SettingUpdate) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -268,9 +266,8 @@ func (u *DockerService) UpdateLogOption(req dto.LogOption) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -312,9 +309,8 @@ func (u *DockerService) UpdateIpv6Option(req dto.Ipv6Option) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -322,9 +318,8 @@ func (u *DockerService) UpdateIpv6Option(req dto.Ipv6Option) error {
|
|||||||
func (u *DockerService) UpdateConfByFile(req dto.DaemonJsonUpdateByFile) error {
|
func (u *DockerService) UpdateConfByFile(req dto.DaemonJsonUpdateByFile) error {
|
||||||
if len(req.File) == 0 {
|
if len(req.File) == 0 {
|
||||||
_ = os.Remove(constant.DaemonJsonPath)
|
_ = os.Remove(constant.DaemonJsonPath)
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -345,9 +340,8 @@ func (u *DockerService) UpdateConfByFile(req dto.DaemonJsonUpdateByFile) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
if err != nil {
|
return err
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -355,6 +349,10 @@ func (u *DockerService) UpdateConfByFile(req dto.DaemonJsonUpdateByFile) error {
|
|||||||
func (u *DockerService) OperateDocker(req dto.DockerOperation) error {
|
func (u *DockerService) OperateDocker(req dto.DockerOperation) error {
|
||||||
service := "docker"
|
service := "docker"
|
||||||
sudo := cmd.SudoHandleCmd()
|
sudo := cmd.SudoHandleCmd()
|
||||||
|
dockerCmd, err := getDockerRestartCommand()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
if req.Operation == "stop" {
|
if req.Operation == "stop" {
|
||||||
isSocketActive, _ := systemctl.IsActive("docker.socket")
|
isSocketActive, _ := systemctl.IsActive("docker.socket")
|
||||||
if isSocketActive {
|
if isSocketActive {
|
||||||
@ -371,9 +369,9 @@ func (u *DockerService) OperateDocker(req dto.DockerOperation) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stdout, err := cmd.Execf("systemctl %s %s ", req.Operation, service)
|
stdout, err := cmd.Execf("%s %s %s", dockerCmd, req.Operation, service)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.New(string(stdout))
|
return errors.New(stdout)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -434,3 +432,27 @@ func validateDockerConfig() error {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func getDockerRestartCommand() (string, error) {
|
||||||
|
stdout, err := cmd.Exec("which docker")
|
||||||
|
if err != nil {
|
||||||
|
return "", fmt.Errorf("failed to find docker: %v", err)
|
||||||
|
}
|
||||||
|
dockerPath := stdout
|
||||||
|
if strings.Contains(dockerPath, "snap") {
|
||||||
|
return "snap", nil
|
||||||
|
}
|
||||||
|
return "systemctl", nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func restartDocker() error {
|
||||||
|
restartCmd, err := getDockerRestartCommand()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
stdout, err := cmd.Execf("%s restart docker", restartCmd)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("failed to restart Docker: %s", stdout)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@ -179,6 +179,7 @@ func (u *FirewallService) OperateFirewall(operation string) error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
needRestartDocker := false
|
||||||
switch operation {
|
switch operation {
|
||||||
case "start":
|
case "start":
|
||||||
if err := client.Start(); err != nil {
|
if err := client.Start(); err != nil {
|
||||||
@ -188,26 +189,30 @@ func (u *FirewallService) OperateFirewall(operation string) error {
|
|||||||
_ = client.Stop()
|
_ = client.Stop()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, _ = cmd.Exec("systemctl restart docker")
|
needRestartDocker = true
|
||||||
return nil
|
|
||||||
case "stop":
|
case "stop":
|
||||||
if err := client.Stop(); err != nil {
|
if err := client.Stop(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, _ = cmd.Exec("systemctl restart docker")
|
needRestartDocker = true
|
||||||
return nil
|
|
||||||
case "restart":
|
case "restart":
|
||||||
if err := client.Restart(); err != nil {
|
if err := client.Restart(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
_, _ = cmd.Exec("systemctl restart docker")
|
needRestartDocker = true
|
||||||
return nil
|
|
||||||
case "disablePing":
|
case "disablePing":
|
||||||
return u.updatePingStatus("0")
|
return u.updatePingStatus("0")
|
||||||
case "enablePing":
|
case "enablePing":
|
||||||
return u.updatePingStatus("1")
|
return u.updatePingStatus("1")
|
||||||
|
default:
|
||||||
|
return fmt.Errorf("not supported operation: %s", operation)
|
||||||
}
|
}
|
||||||
return fmt.Errorf("not support such operation: %s", operation)
|
if needRestartDocker {
|
||||||
|
if err := restartDocker(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *FirewallService) OperatePortRule(req dto.PortRuleOperate, reload bool) error {
|
func (u *FirewallService) OperatePortRule(req dto.PortRuleOperate, reload bool) error {
|
||||||
|
@ -89,10 +89,8 @@ func (u *ImageRepoService) Create(req dto.ImageRepoCreate) error {
|
|||||||
if err := validateDockerConfig(); err != nil {
|
if err := validateDockerConfig(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := restartDocker(); err != nil {
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
return err
|
||||||
if err != nil {
|
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
ticker := time.NewTicker(3 * time.Second)
|
ticker := time.NewTicker(3 * time.Second)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
@ -166,13 +164,10 @@ func (u *ImageRepoService) Update(req dto.ImageRepoUpdate) error {
|
|||||||
if err := validateDockerConfig(); err != nil {
|
if err := validateDockerConfig(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := restartDocker(); err != nil {
|
||||||
stdout, err := cmd.Exec("systemctl restart docker")
|
return err
|
||||||
if err != nil {
|
|
||||||
return errors.New(string(stdout))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
upMap := make(map[string]interface{})
|
upMap := make(map[string]interface{})
|
||||||
upMap["download_url"] = req.DownloadUrl
|
upMap["download_url"] = req.DownloadUrl
|
||||||
upMap["protocol"] = req.Protocol
|
upMap["protocol"] = req.Protocol
|
||||||
|
@ -231,7 +231,9 @@ func recoverDaemonJson(src string, fileOp files.FileOp) error {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_, _ = cmd.Exec("systemctl restart docker")
|
if err := restartDocker(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user