diff --git a/CHANGELOG.md b/CHANGELOG.md index 09395fd..d8ff330 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ * [Task] Check less frequently for updates (once every 14 days). +* [Feature] Add an easy way to share the SSH socket with a container by adding the `share-ssh-socket` configuration. + ## 3.3.4 (2018-03-22) * [Bugfix] Attach --volumes flag to `rm` command, not `provision` diff --git a/crane/container.go b/crane/container.go index 6231949..cc8d4a0 100644 --- a/crane/container.go +++ b/crane/container.go @@ -141,6 +141,7 @@ type container struct { RawRm bool `json:"rm" yaml:"rm"` RawSecurityOpt []string `json:"security-opt" yaml:"security-opt"` RawSecurity_Opt []string `json:"security_opt" yaml:"security_opt"` + ShareSshSocket bool `json:"share-ssh-socket" yaml:"share-ssh-socket"` RawShmSize string `json:"shm-size" yaml:"shm-size"` RawShm_Size string `json:"shm_size" yaml:"shm_size"` SigProxy OptBool `json:"sig-proxy" yaml:"sig-proxy"` @@ -1297,6 +1298,11 @@ func (c *container) createArgs(cmds []string) []string { for _, securityOpt := range c.SecurityOpt() { args = append(args, "--security-opt", securityOpt) } + // Share SSH socket + if c.ShareSshSocket { + args = append(args, "--volume", "$SSH_AUTH_SOCK:/ssh-socket") + args = append(args, "--env", "SSH_AUTH_SOCK=/ssh-socket") + } // ShmSize if len(c.ShmSize()) > 0 { args = append(args, "--shm-size", c.ShmSize())