Skip to content

Commit fa321b6

Browse files
Merge pull request #277 from step-security/live-restore
Fix live-restore bug
2 parents 40d3179 + 550b763 commit fa321b6

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

dnsconfig.go

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ func updateDockerConfig(configPath string) error {
4646
}
4747

4848
m["dns"] = []string{dockerDnsServer}
49+
m["live-restore"] = true
4950

5051
config, err := json.Marshal(m)
5152
if err != nil {
@@ -162,21 +163,31 @@ func (d *DnsConfig) SetDockerDNSServer(cmd Command, configPath, tempDir string)
162163
if err != nil {
163164
return fmt.Errorf(fmt.Sprintf("error backing up docker config: %v", err))
164165
}
165-
166+
mock := cmd != nil
166167
err = updateDockerConfig(configPath)
167168
if err != nil {
168169
return fmt.Errorf(fmt.Sprintf("error updating to docker daemon config: %v", err))
169170
}
170171

171-
if cmd == nil {
172-
cmd = exec.Command("/bin/sh", "-c", "sudo systemctl daemon-reload && sudo systemctl reload docker")
172+
// reload will apply the live-restore config so running containers restart after docker is restarted
173+
if !mock {
174+
cmd = exec.Command("/bin/sh", "-c", "sudo systemctl reload docker")
173175
}
174176

175177
err = cmd.Run()
176178
if err != nil {
177179
return fmt.Errorf(fmt.Sprintf("error reloading docker: %v", err))
178180
}
179181

182+
if !mock {
183+
cmd = exec.Command("/bin/sh", "-c", "sudo systemctl daemon-reload && sudo systemctl restart docker")
184+
}
185+
186+
err = cmd.Run()
187+
if err != nil {
188+
return fmt.Errorf(fmt.Sprintf("error restarting docker: %v", err))
189+
}
190+
180191
return nil
181192
}
182193

dnsconfig_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ func Test_updateDockerConfig(t *testing.T) {
4141
}{
4242
{name: "existing file",
4343
args: args{configPath: tmpFileName},
44-
want: "{\"cgroup-parent\":\"/actions_job\",\"dns\":[\"172.17.0.1\"]}",
44+
want: "{\"cgroup-parent\":\"/actions_job\",\"dns\":[\"172.17.0.1\"],\"live-restore\":true}",
4545
wantErr: false},
4646
{name: "non existent file",
4747
args: args{configPath: mockDockerConfigPath},
48-
want: "{\"dns\":[\"172.17.0.1\"]}",
48+
want: "{\"dns\":[\"172.17.0.1\"],\"live-restore\":true}",
4949
wantErr: false},
5050
}
5151

0 commit comments

Comments
 (0)