From 59917f52d7037c415274fdcad0b2f9bc506b54d1 Mon Sep 17 00:00:00 2001 From: yusing Date: Sun, 14 Sep 2025 00:16:47 +0800 Subject: [PATCH] feat(agent): add runtime configuration to agent env and script --- agent/cmd/main.go | 8 ++++++-- agent/pkg/env/env.go | 11 +++++++++++ scripts/install-agent.sh | 10 ++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/agent/cmd/main.go b/agent/cmd/main.go index d2167b6a..c6633577 100644 --- a/agent/cmd/main.go +++ b/agent/cmd/main.go @@ -12,6 +12,7 @@ import ( "github.com/yusing/go-proxy/internal/metrics/systeminfo" httpServer "github.com/yusing/go-proxy/internal/net/gphttp/server" "github.com/yusing/go-proxy/internal/task" + "github.com/yusing/go-proxy/internal/utils/strutils" "github.com/yusing/go-proxy/pkg" socketproxy "github.com/yusing/go-proxy/socketproxy/pkg" ) @@ -46,6 +47,7 @@ func main() { log.Info().Msgf("GoDoxy Agent version %s", pkg.GetVersion()) log.Info().Msgf("Agent name: %s", env.AgentName) log.Info().Msgf("Agent port: %d", env.AgentPort) + log.Info().Msgf("Agent runtime: %s", env.Runtime) log.Info().Msg(` Tips: @@ -63,9 +65,11 @@ Tips: server.StartAgentServer(t, opts) if socketproxy.ListenAddr != "" { - log.Info().Msgf("Docker socket listening on: %s", socketproxy.ListenAddr) + runtime := strutils.Title(string(env.Runtime)) + + log.Info().Msgf("%s socket listening on: %s", runtime, socketproxy.ListenAddr) opts := httpServer.Options{ - Name: "docker", + Name: runtime, HTTPAddr: socketproxy.ListenAddr, Handler: socketproxy.NewHandler(), } diff --git a/agent/pkg/env/env.go b/agent/pkg/env/env.go index c1c74fd1..74466bd2 100644 --- a/agent/pkg/env/env.go +++ b/agent/pkg/env/env.go @@ -3,7 +3,10 @@ package env import ( "os" + "github.com/yusing/go-proxy/agent/pkg/agent" "github.com/yusing/go-proxy/internal/common" + + "github.com/rs/zerolog/log" ) func DefaultAgentName() string { @@ -21,6 +24,7 @@ var ( AgentCACert string AgentSSLCert string DockerSocket string + Runtime agent.ContainerRuntime ) func init() { @@ -35,4 +39,11 @@ func Load() { AgentCACert = common.GetEnvString("AGENT_CA_CERT", "") AgentSSLCert = common.GetEnvString("AGENT_SSL_CERT", "") + Runtime = agent.ContainerRuntime(common.GetEnvString("RUNTIME", "docker")) + + switch Runtime { + case agent.ContainerRuntimeDocker, agent.ContainerRuntimePodman: //, agent.ContainerRuntimeNerdctl: + default: + log.Fatal().Str("runtime", string(Runtime)).Msg("invalid runtime") + } } diff --git a/scripts/install-agent.sh b/scripts/install-agent.sh index 1b116add..29bde43a 100644 --- a/scripts/install-agent.sh +++ b/scripts/install-agent.sh @@ -74,6 +74,14 @@ if [ -z "$COMMAND" ]; then echo "AGENT_SSL_CERT is not set" exit 1 fi + if [ -z "$DOCKER_SOCKET" ]; then + echo "DOCKER_SOCKET is not set" + exit 1 + fi + if [ -z "$RUNTIME" ]; then + echo "RUNTIME is not set" + exit 1 + fi fi # init variables @@ -200,6 +208,8 @@ AGENT_NAME="${AGENT_NAME}" AGENT_PORT="${AGENT_PORT}" AGENT_CA_CERT="${AGENT_CA_CERT}" AGENT_SSL_CERT="${AGENT_SSL_CERT}" +DOCKER_SOCKET="${DOCKER_SOCKET}" +RUNTIME="${RUNTIME}" EOF chmod 600 $env_file