From e7f46b03fcf872f863199f03431f9a5e7d3e2eb6 Mon Sep 17 00:00:00 2001 From: ICKelin Date: Fri, 5 Apr 2024 22:14:14 +0800 Subject: [PATCH] feat: add docker-build for gtund --- .gitignore | 3 ++- build.sh | 2 +- docker-build/gtun/Dockerfile | 6 ++++++ docker-build/gtun/docker-compose.yaml | 12 ++++++++++++ docker-build/gtun/start.sh | 6 ++++++ docker-build/gtund/Dockerfile | 6 ++++++ docker-build/gtund/docker-compose.yaml | 12 ++++++++++++ docker-build/gtund/start.sh | 6 ++++++ docker_build.sh | 11 +++++++++++ src/{node-agent => agent}/config.go | 0 src/{node-agent => agent}/config.yaml | 0 src/{node-agent => agent}/main.go | 0 src/{node-agent => agent}/service.go | 0 src/{node-agent => agent}/service_test.go | 0 src/gtun/config/config.go | 11 ++++++++++- 15 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 docker-build/gtun/Dockerfile create mode 100644 docker-build/gtun/docker-compose.yaml create mode 100644 docker-build/gtun/start.sh create mode 100644 docker-build/gtund/Dockerfile create mode 100644 docker-build/gtund/docker-compose.yaml create mode 100644 docker-build/gtund/start.sh create mode 100755 docker_build.sh rename src/{node-agent => agent}/config.go (100%) rename src/{node-agent => agent}/config.yaml (100%) rename src/{node-agent => agent}/main.go (100%) rename src/{node-agent => agent}/service.go (100%) rename src/{node-agent => agent}/service_test.go (100%) diff --git a/.gitignore b/.gitignore index 4972797..16a1caf 100644 --- a/.gitignore +++ b/.gitignore @@ -13,4 +13,5 @@ research docker-build/gtun/gtun* docker-build/gtund/gtund -release \ No newline at end of file +release +images \ No newline at end of file diff --git a/build.sh b/build.sh index bde1979..17cdbac 100755 --- a/build.sh +++ b/build.sh @@ -13,7 +13,7 @@ cp scripts/install_gtun.sh release/gtun/install.sh cp -r etc/gtun/* release/gtun/etc cd src/gtund -GOOS=linux go build -o gtund +GOOS=linux GOARCH=amd64 go build -o gtund mv gtund $DIR/release/gtund/ cd $DIR cp scripts/install_gtund.sh release/gtund/install.sh diff --git a/docker-build/gtun/Dockerfile b/docker-build/gtun/Dockerfile new file mode 100644 index 0000000..f26aaec --- /dev/null +++ b/docker-build/gtun/Dockerfile @@ -0,0 +1,6 @@ +FROM ubuntu:20.04 +RUN mkdir -p /opt/apps/gtun/logs +COPY . /opt/apps/gtun +COPY start.sh / +RUN chmod +x start.sh && chmod +x /opt/apps/gtun/gtun +CMD /start.sh \ No newline at end of file diff --git a/docker-build/gtun/docker-compose.yaml b/docker-build/gtun/docker-compose.yaml new file mode 100644 index 0000000..dbe8d9b --- /dev/null +++ b/docker-build/gtun/docker-compose.yaml @@ -0,0 +1,12 @@ +version: '3' +services: + accelerator: + build: . + container_name: gtun + restart: always + network_mode: host + privileged: true + volumes: + - /opt/apps/gtun/logs:/opt/apps/gtun/logs + environment: + TIME_ZONE: Asia/Shanghai \ No newline at end of file diff --git a/docker-build/gtun/start.sh b/docker-build/gtun/start.sh new file mode 100644 index 0000000..64fe880 --- /dev/null +++ b/docker-build/gtun/start.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +if [ "$TIME_ZONE" != "" ]; then + ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone +fi + +/opt/apps/gtun/gtun -c /opt/apps/gtun/etc/gtun.yaml \ No newline at end of file diff --git a/docker-build/gtund/Dockerfile b/docker-build/gtund/Dockerfile new file mode 100644 index 0000000..4050e86 --- /dev/null +++ b/docker-build/gtund/Dockerfile @@ -0,0 +1,6 @@ +FROM ubuntu:20.04 +RUN mkdir -p /opt/apps/gtund/logs +COPY . /opt/apps/gtund +COPY start.sh / +RUN chmod +x start.sh && chmod +x /opt/apps/gtund/gtund +CMD /start.sh \ No newline at end of file diff --git a/docker-build/gtund/docker-compose.yaml b/docker-build/gtund/docker-compose.yaml new file mode 100644 index 0000000..18cd6c6 --- /dev/null +++ b/docker-build/gtund/docker-compose.yaml @@ -0,0 +1,12 @@ +version: '3' +services: + accelerator: + build: . + container_name: gtund + restart: always + network_mode: host + privileged: true + volumes: + - /opt/apps/gtund/logs:/opt/apps/gtund/logs + environment: + TIME_ZONE: Asia/Shanghai \ No newline at end of file diff --git a/docker-build/gtund/start.sh b/docker-build/gtund/start.sh new file mode 100644 index 0000000..9d20702 --- /dev/null +++ b/docker-build/gtund/start.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +if [ "$TIME_ZONE" != "" ]; then + ln -snf /usr/share/zoneinfo/$TIME_ZONE /etc/localtime && echo $TIME_ZONE > /etc/timezone +fi + +/opt/apps/gtund/gtund -c /opt/apps/gtund/etc/gtund.yaml \ No newline at end of file diff --git a/docker_build.sh b/docker_build.sh new file mode 100755 index 0000000..4b85ef1 --- /dev/null +++ b/docker_build.sh @@ -0,0 +1,11 @@ +./build.sh + +rm -r images + +mkdir -p images/gtun +cp -r release/gtun/* images/gtun/ +cp -r docker-build/gtun/* images/gtun/ + +mkdir -p images/gtund +cp -r release/gtund/* images/gtund +cp -r docker-build/gtund/* images/gtund/ \ No newline at end of file diff --git a/src/node-agent/config.go b/src/agent/config.go similarity index 100% rename from src/node-agent/config.go rename to src/agent/config.go diff --git a/src/node-agent/config.yaml b/src/agent/config.yaml similarity index 100% rename from src/node-agent/config.yaml rename to src/agent/config.yaml diff --git a/src/node-agent/main.go b/src/agent/main.go similarity index 100% rename from src/node-agent/main.go rename to src/agent/main.go diff --git a/src/node-agent/service.go b/src/agent/service.go similarity index 100% rename from src/node-agent/service.go rename to src/agent/service.go diff --git a/src/node-agent/service_test.go b/src/agent/service_test.go similarity index 100% rename from src/node-agent/service_test.go rename to src/agent/service_test.go diff --git a/src/gtun/config/config.go b/src/gtun/config/config.go index ffaaafe..d5e5ee8 100644 --- a/src/gtun/config/config.go +++ b/src/gtun/config/config.go @@ -7,6 +7,7 @@ import ( ) var gConfig *Config +var signatureKey = os.Getenv("GTUN_SIGNATURE") type Config struct { RouteFile string `yaml:"route_file"` @@ -33,8 +34,16 @@ func Parse(path string) (*Config, error) { if err != nil { return nil, err } + //lines := strings.Split(content, "\n") + //if !strings.HasPrefix(lines[0], "SIGNATURE=") { + // return nil, fmt.Errorf("signature error") + //} + // + //signature := strings.Split(lines[0], "SIGNATURE=")[1] + // + //configContent := strings.Join(lines[1:], "\n") - return ParseBuffer(content) + return ParseBuffer([]byte(content)) } func ParseBuffer(content []byte) (*Config, error) {