feat(agent): add runtime configuration to agent env and script

This commit is contained in:
yusing
2025-09-14 00:16:47 +08:00
parent 24fb2e07e6
commit 59917f52d7
3 changed files with 27 additions and 2 deletions

View File

@@ -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(),
}

11
agent/pkg/env/env.go vendored
View File

@@ -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")
}
}

View File

@@ -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