Skip to content

Commit 9de5836

Browse files
committed
fix: Fix the problem of Docker restarting caused by proxy synchronization
1 parent 6ee2bf2 commit 9de5836

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

agent/app/api/v2/docker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ func (b *BaseApi) UpdateDaemonJson(c *gin.Context) {
7272
return
7373
}
7474

75-
if err := dockerService.UpdateConf(req); err != nil {
75+
if err := dockerService.UpdateConf(req, true); err != nil {
7676
helper.InternalServer(c, err)
7777
return
7878
}

agent/app/service/docker.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import (
2121
type DockerService struct{}
2222

2323
type IDockerService interface {
24-
UpdateConf(req dto.SettingUpdate) error
24+
UpdateConf(req dto.SettingUpdate, withRestart bool) error
2525
UpdateLogOption(req dto.LogOption) error
2626
UpdateIpv6Option(req dto.Ipv6Option) error
2727
UpdateConfByFile(info dto.DaemonJsonUpdateByFile) error
@@ -136,7 +136,7 @@ func (u *DockerService) LoadDockerConf() (*dto.DaemonJsonConf, error) {
136136
return &data, nil
137137
}
138138

139-
func (u *DockerService) UpdateConf(req dto.SettingUpdate) error {
139+
func (u *DockerService) UpdateConf(req dto.SettingUpdate, withRestart bool) error {
140140
err := createIfNotExistDaemonJsonFile()
141141
if err != nil {
142142
return err
@@ -222,25 +222,31 @@ func (u *DockerService) UpdateConf(req dto.SettingUpdate) error {
222222
}
223223
}
224224
if len(daemonMap) == 0 {
225+
if len(file) == 0 {
226+
return nil
227+
}
225228
_ = os.Remove(constant.DaemonJsonPath)
226-
if err := restartDocker(); err != nil {
227-
return err
229+
if withRestart {
230+
return restartDocker()
228231
}
229232
return nil
230233
}
231234
newJson, err := json.MarshalIndent(daemonMap, "", "\t")
232235
if err != nil {
233236
return err
234237
}
238+
if string(newJson) == string(file) {
239+
return nil
240+
}
235241
if err := os.WriteFile(constant.DaemonJsonPath, newJson, 0640); err != nil {
236242
return err
237243
}
238244
if err := validateDockerConfig(); err != nil {
239245
return err
240246
}
241247

242-
if err := restartDocker(); err != nil {
243-
return err
248+
if withRestart {
249+
return restartDocker()
244250
}
245251
return nil
246252
}

0 commit comments

Comments
 (0)