From 32246a5328e8caa72963e9f0453427479180275f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Van=C3=AD=C4=8Dek?= Date: Fri, 28 Jul 2023 19:38:52 +0200 Subject: [PATCH] Link hidden docker socket to the expected path --- daemon/daemon.go | 12 ++++++++++++ plugin.go | 17 +---------------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/daemon/daemon.go b/daemon/daemon.go index ad868c1..11c8a66 100644 --- a/daemon/daemon.go +++ b/daemon/daemon.go @@ -4,6 +4,14 @@ import ( "fmt" "os/exec" "time" + + "github.com/pkg/errors" + "os" +) + +const ( + StdDockerSocketPath = "/var/run/docker.sock" + HiddenDockerSocketPath = "/var/run/hidden_docker.sock" ) type Daemon struct { @@ -26,6 +34,10 @@ type Daemon struct { func StartDaemon(d Daemon) error { if !d.Disabled { startDaemon(d) + } else if !d.NotHiddenSocket { + if err := os.Link(HiddenDockerSocketPath, StdDockerSocketPath); err != nil { + return errors.Wrap(err, "failed to link hidden docker socket to common one") + } } return waitForDaemon() } diff --git a/plugin.go b/plugin.go index 6e2e7ef..cf80550 100644 --- a/plugin.go +++ b/plugin.go @@ -24,9 +24,6 @@ const ( secretFile = "/tmp/action.secrets" workflowFile = "/tmp/workflow.yml" eventPayloadFile = "/tmp/event.json" - - stdDockerSocketPath = "/var/run/docker.sock" - hiddenDockerSocketPath = "/var/run/hidden_docker.sock" ) var ( @@ -120,10 +117,6 @@ func (p Plugin) Exec() error { cmd.Stderr = os.Stderr trace(cmd) - if p.Daemon.Disabled && !p.Daemon.NotHiddenSocket { - cmd.Env = append(os.Environ(), fmt.Sprintf("DOCKER_HOST=%s", "unix://" + hiddenDockerSocketPath)) - } - err := cmd.Run() if err != nil { return err @@ -139,15 +132,7 @@ func trace(cmd *exec.Cmd) { func getWorkDirPath(p Plugin, ctx context.Context) (string, string, error) { // Connect to the docker - // Note: We use a custom "hidden" socket path - dockerSockPath := "" - if p.Daemon.NotHiddenSocket { - dockerSockPath = stdDockerSocketPath - } else { - dockerSockPath = hiddenDockerSocketPath - } - - docker, err := docker.NewClient("unix://" + dockerSockPath, "v1.13.1", nil, nil) + docker, err := docker.NewClient("unix://" + daemon.StdDockerSocketPath, "v1.13.1", nil, nil) if err != nil { return "", "", errors.Wrap(err, "failed to create docker client") }