Skip to content

Commit 584cef0

Browse files
committed
Add support for specifying the logging dir
1 parent ce8d2b1 commit 584cef0

File tree

4 files changed

+10
-59
lines changed

4 files changed

+10
-59
lines changed

api/client/checkpoint.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,12 @@ import (
66
"github.com/docker/libcontainer"
77
)
88

9-
/*
10-
type CriuOpts struct {
11-
ImagesDirectory string // directory for storing image files
12-
PreviousImagesDirectory string // path to images from previous dump (relative to --images-directory)
13-
LeaveRunning Bool // leave container in running state after checkpoint
14-
TcpEstablished bool // checkpoint/restore established TCP connections
15-
ExternalUnixConnections bool // allow external unix connections
16-
ShellJob bool // allow to dump and restore shell jobs
17-
}*/
18-
199
func (cli *DockerCli) CmdCheckpoint(args ...string) error {
2010
cmd := cli.Subcmd("checkpoint", "CONTAINER [CONTAINER...]", "Checkpoint one or more running containers", true)
2111

2212
var (
2313
flImgDir = cmd.String([]string{"-image-dir"}, "", "(optional) directory for storing checkpoint image files")
14+
flWorkDir = cmd.String([]string{"-work-dir"}, "", "directory for storing log file")
2415
flPrevImgDir = cmd.String([]string{"-prev-image-dir"}, "", "path to images from previous dump (relative to --checkpoint-image-dir)")
2516
flLeaveRunning = cmd.Bool([]string{"-leave-running"}, false, "leave the container running after checkpointing")
2617
flCheckTcp = cmd.Bool([]string{"-allow-tcp"}, false, "allow checkpointing established tcp connections")
@@ -39,6 +30,7 @@ func (cli *DockerCli) CmdCheckpoint(args ...string) error {
3930

4031
criuOpts := &libcontainer.CriuOpts{
4132
ImagesDirectory: *flImgDir,
33+
WorkDirectory: *flWorkDir,
4234
PreviousImagesDirectory: *flPrevImgDir,
4335
LeaveRunning: *flLeaveRunning,
4436
TcpEstablished: *flCheckTcp,

api/client/restore.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ func (cli *DockerCli) CmdRestore(args ...string) error {
1111

1212
var (
1313
flImgDir = cmd.String([]string{"-image-dir"}, "", "(optional) directory to restore image files from")
14+
flWorkDir = cmd.String([]string{"-work-dir"}, "", "directory to store temp files and restore.log")
1415
flCheckTcp = cmd.Bool([]string{"-allow-tcp"}, false, "allow restoring tcp connections")
1516
flExtUnix = cmd.Bool([]string{"-allow-ext-unix"}, false, "allow restoring external unix connections")
1617
flShell = cmd.Bool([]string{"-allow-shell"}, false, "allow restoring shell jobs")
@@ -27,6 +28,7 @@ func (cli *DockerCli) CmdRestore(args ...string) error {
2728

2829
criuOpts := &libcontainer.CriuOpts{
2930
ImagesDirectory: *flImgDir,
31+
WorkDirectory: *flWorkDir,
3032
TcpEstablished: *flCheckTcp,
3133
ExternalUnixConnections: *flExtUnix,
3234
ShellJob: *flShell,

daemon/checkpoint.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ func (daemon *Daemon) ContainerCheckpoint(job *engine.Job) error {
2727
if job.EnvExists("ImagesDirectory") {
2828
opts.ImagesDirectory = job.Getenv("ImagesDirectory")
2929
}
30+
if job.EnvExists("WorkDirectory") {
31+
opts.WorkDirectory = job.Getenv("WorkDirectory")
32+
}
3033
if job.EnvExists("PreviousImagesDirectory") {
3134
opts.PreviousImagesDirectory = job.Getenv("PreviousImagesDirectory")
3235
}
@@ -79,6 +82,9 @@ func (daemon *Daemon) ContainerRestore(job *engine.Job) error {
7982
if job.EnvExists("ImagesDirectory") {
8083
opts.ImagesDirectory = job.Getenv("ImagesDirectory")
8184
}
85+
if job.EnvExists("WorkDirectory") {
86+
opts.ImagesDirectory = job.Getenv("WorkDirectory")
87+
}
8288
if job.EnvExists("TcpEstablished") {
8389
opts.TcpEstablished = job.GetenvBool("TcpEstablished")
8490
}

daemon/container.go

Lines changed: 0 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -395,53 +395,6 @@ func populateCommand(c *Container, env []string) error {
395395
return nil
396396
}
397397

398-
// Like populateCommand() but for restoring a container.
399-
//
400-
// XXX populateCommand() does a lot more. Not sure if we have
401-
// to do everything it does.
402-
func populateCommandRestore(c *Container, env []string) error {
403-
resources := &execdriver.Resources{
404-
Memory: c.hostConfig.Memory,
405-
MemorySwap: c.hostConfig.MemorySwap,
406-
CpuShares: c.hostConfig.CpuShares,
407-
CpusetCpus: c.hostConfig.CpusetCpus,
408-
}
409-
410-
processConfig := execdriver.ProcessConfig{
411-
Privileged: c.hostConfig.Privileged,
412-
Entrypoint: c.Path,
413-
Arguments: c.Args,
414-
Tty: c.Config.Tty,
415-
User: c.Config.User,
416-
}
417-
418-
processConfig.SysProcAttr = &syscall.SysProcAttr{Setsid: true}
419-
processConfig.Env = env
420-
421-
c.command = &execdriver.Command{
422-
ID: c.ID,
423-
Rootfs: c.RootfsPath(),
424-
ReadonlyRootfs: c.hostConfig.ReadonlyRootfs,
425-
InitPath: "/.dockerinit",
426-
WorkingDir: c.Config.WorkingDir,
427-
// Network: en,
428-
// Ipc: ipc,
429-
// Pid: pid,
430-
Resources: resources,
431-
// AllowedDevices: allowedDevices,
432-
// AutoCreatedDevices: autoCreatedDevices,
433-
CapAdd: c.hostConfig.CapAdd,
434-
CapDrop: c.hostConfig.CapDrop,
435-
ProcessConfig: processConfig,
436-
ProcessLabel: c.GetProcessLabel(),
437-
MountLabel: c.GetMountLabel(),
438-
// LxcConfig: lxcConfig,
439-
AppArmorProfile: c.AppArmorProfile,
440-
}
441-
442-
return nil
443-
}
444-
445398
func (container *Container) Start() (err error) {
446399
container.Lock()
447400
defer container.Unlock()
@@ -1016,8 +969,6 @@ func (container *Container) Checkpoint(opts *libcontainer.CriuOpts) error {
1016969
return container.daemon.Checkpoint(container, opts)
1017970
}
1018971

1019-
// Like waitForStart() but for restoring a container.
1020-
//
1021972
// XXX Start() does a lot more. Not sure if we have
1022973
// to do everything it does.
1023974
func (container *Container) Restore(opts *libcontainer.CriuOpts) error {

0 commit comments

Comments
 (0)