Skip to content

Commit c4b989f

Browse files
feat: 更新
1 parent ab648d6 commit c4b989f

5 files changed

Lines changed: 75 additions & 198 deletions

File tree

Dockerfile.npc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
FROM golang:1.15 as builder
1+
FROM golang:1.20-buster as builder
22
ARG GOPROXY=direct
33
WORKDIR /go/src/ehang.io/nps
44
COPY . .
5-
RUN go get -d -v ./...
6-
RUN CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/npc/npc.go
5+
RUN set -ex \
6+
&& go mod tidy \
7+
&& CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/npc/npc.go
78

89
FROM scratch
910
COPY --from=builder /go/src/ehang.io/nps/npc /

Dockerfile.nps

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
FROM golang:1.15 as builder
1+
FROM golang:1.20-buster as builder
22
ARG GOPROXY=direct
33
WORKDIR /go/src/ehang.io/nps
44
COPY . .
5-
RUN go get -d -v ./...
6-
RUN CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/nps/nps.go
5+
RUN set -ex \
6+
&& go mod tidy \
7+
&& CGO_ENABLED=0 go build -ldflags="-w -s -extldflags -static" ./cmd/nps/nps.go
78

89
FROM scratch
910
COPY --from=builder /go/src/ehang.io/nps/nps /

build.sh

Lines changed: 16 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1,168 +1,21 @@
1-
#/bash/sh
1+
#!/bin/bash
22
export VERSION=0.26.10
3-
export GOPROXY=direct
3+
GOFlAGS="-s -w -extldflags -static"
44

5-
sudo apt-get update
6-
sudo apt-get install gcc-mingw-w64-i686 gcc-multilib
7-
env GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc go build -ldflags "-s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.dll cmd/npc/sdk.go
8-
env GOOS=linux GOARCH=386 CGO_ENABLED=1 CC=gcc go build -ldflags "-s -w -extldflags -static -extldflags -static" -buildmode=c-shared -o npc_sdk.so cmd/npc/sdk.go
9-
tar -czvf npc_sdk.tar.gz npc_sdk.dll npc_sdk.so npc_sdk.h
5+
if [ ! -d "./build" ]; then
6+
mkdir -p ./build
7+
fi
108

11-
wget https://github.com/upx/upx/releases/download/v3.95/upx-3.95-amd64_linux.tar.xz
12-
tar -xvf upx-3.95-amd64_linux.tar.xz
13-
cp upx-3.95-amd64_linux/upx ./
9+
rm -rf ./build/*
1410

15-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
16-
tar -czvf linux_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
11+
for ARCH in amd64 arm64 loong64; do
12+
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags "${GOFlAGS}" ./cmd/npc/npc.go
13+
tar -czf ./build/linux_${ARCH}_client.tar.gz npc conf/npc.conf conf/multi_account.conf
14+
rm -f npc
15+
done
1716

18-
19-
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
20-
tar -czvf linux_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf
21-
22-
23-
CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
24-
tar -czvf freebsd_386_client.tar.gz npc conf/npc.conf conf/multi_account.conf
25-
26-
27-
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
28-
tar -czvf freebsd_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
29-
30-
31-
CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
32-
tar -czvf freebsd_arm_client.tar.gz npc conf/npc.conf conf/multi_account.conf
33-
34-
35-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
36-
tar -czvf linux_arm_v7_client.tar.gz npc conf/npc.conf conf/multi_account.conf
37-
38-
39-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
40-
tar -czvf linux_arm_v6_client.tar.gz npc conf/npc.conf conf/multi_account.conf
41-
42-
43-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
44-
tar -czvf linux_arm_v5_client.tar.gz npc conf/npc.conf conf/multi_account.conf
45-
46-
47-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
48-
tar -czvf linux_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
49-
50-
51-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
52-
tar -czvf linux_mips64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
53-
54-
55-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
56-
tar -czvf linux_mips64le_client.tar.gz npc conf/npc.conf conf/multi_account.conf
57-
58-
59-
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
60-
tar -czvf linux_mipsle_client.tar.gz npc conf/npc.conf conf/multi_account.conf
61-
62-
63-
CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
64-
tar -czvf linux_mips_client.tar.gz npc conf/npc.conf conf/multi_account.conf
65-
66-
67-
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
68-
tar -czvf windows_386_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf
69-
70-
71-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
72-
tar -czvf windows_amd64_client.tar.gz npc.exe conf/npc.conf conf/multi_account.conf
73-
74-
75-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
76-
tar -czvf darwin_amd64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
77-
78-
79-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/npc/npc.go
80-
tar -czvf darwin_arm64_client.tar.gz npc conf/npc.conf conf/multi_account.conf
81-
82-
83-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
84-
tar -czvf linux_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
85-
86-
87-
CGO_ENABLED=0 GOOS=linux GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
88-
tar -czvf linux_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
89-
90-
91-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=5 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
92-
tar -czvf linux_arm_v5_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
93-
94-
95-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=6 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
96-
tar -czvf linux_arm_v6_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
97-
98-
99-
CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
100-
tar -czvf linux_arm_v7_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
101-
102-
103-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
104-
tar -czvf linux_arm64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
105-
106-
107-
CGO_ENABLED=0 GOOS=freebsd GOARCH=arm go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
108-
tar -czvf freebsd_arm_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
109-
110-
111-
CGO_ENABLED=0 GOOS=freebsd GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
112-
tar -czvf freebsd_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
113-
114-
115-
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
116-
tar -czvf freebsd_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
117-
118-
119-
CGO_ENABLED=0 GOOS=linux GOARCH=mips go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
120-
tar -czvf linux_mips_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
121-
122-
123-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
124-
tar -czvf linux_mips64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
125-
126-
127-
CGO_ENABLED=0 GOOS=linux GOARCH=mips64le go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
128-
tar -czvf linux_mips64le_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
129-
130-
131-
CGO_ENABLED=0 GOOS=linux GOARCH=mipsle go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
132-
tar -czvf linux_mipsle_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
133-
134-
135-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
136-
tar -czvf darwin_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
137-
138-
139-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
140-
tar -czvf darwin_arm64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
141-
142-
143-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
144-
tar -czvf windows_amd64_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps.exe
145-
146-
147-
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -ldflags "-s -w -extldflags -static -extldflags -static" ./cmd/nps/nps.go
148-
tar -czvf windows_386_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps.exe
149-
150-
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
151-
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
152-
sudo apt-get update
153-
sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce
154-
docker --version
155-
docker run --rm -i -w /app -v $(pwd):/app -e ANDROID_HOME=/usr/local/android_sdk -e GOPROXY=direct lucor/fyne-cross:android-latest /app/build.android.sh
156-
git clone https://github.com/cnlh/spksrc.git ~/spksrc
157-
mkdir ~/spksrc/nps && cp -rf ./* ~/spksrc/nps/
158-
docker run -itd --name spksrc --env VERSION=$VERSION -e GOPROXY=direct -v ~/spksrc:/spksrc synocommunity/spksrc /bin/bash
159-
docker exec -it spksrc /bin/bash -c 'cd /spksrc && make setup && cd /spksrc/spk/npc && make arch-x64-7.0'
160-
cp ~/spksrc/packages/npc_x64-7.0_$VERSION-1.spk ./npc_syno.spk
161-
162-
163-
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin
164-
export DOCKER_CLI_EXPERIMENTAL=enabled
165-
docker run --rm --privileged docker/binfmt:66f9012c56a8316f9244ffd7622d7c21c1f6f28d
166-
docker buildx create --use --name mybuilder
167-
docker buildx build --tag ffdfgdfg/nps:$VERSION --tag ffdfgdfg/nps:latest --output type=image,push=true --file Dockerfile.nps --platform=linux/amd64,linux/arm64,linux/386,linux/arm .
168-
docker buildx build --tag ffdfgdfg/npc:$VERSION --tag ffdfgdfg/npc:latest --output type=image,push=true --file Dockerfile.npc --platform=linux/amd64,linux/arm64,linux/386,linux/arm .
17+
for ARCH in amd64 arm64 loong64; do
18+
CGO_ENABLED=0 GOOS=linux GOARCH=${ARCH} go build -ldflags "${GOFlAGS}" ./cmd/nps/nps.go
19+
tar -czf ./build/linux_${ARCH}_server.tar.gz conf/nps.conf conf/tasks.json conf/clients.json conf/hosts.json conf/server.key conf/server.pem web/views web/static nps
20+
rm -f nps
21+
done

go.mod

Lines changed: 36 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,59 @@
11
module ehang.io/nps
22

3-
go 1.15
3+
go 1.20
44

55
require (
66
ehang.io/nps-mux v0.0.0-20210407130203-4afa0c10c992
77
fyne.io/fyne/v2 v2.0.2
88
github.com/astaxie/beego v1.12.0
9-
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
109
github.com/c4milo/unpackit v0.0.0-20170704181138-4ed373e9ef1c
1110
github.com/ccding/go-stun v0.0.0-20180726100737-be486d185f3d
12-
github.com/dsnet/compress v0.0.1 // indirect
1311
github.com/golang/snappy v0.0.3
14-
github.com/hooklift/assert v0.0.0-20170704181755-9d1defd6d214 // indirect
1512
github.com/kardianos/service v1.2.0
13+
github.com/panjf2000/ants/v2 v2.4.2
14+
github.com/pkg/errors v0.9.1
15+
github.com/shirou/gopsutil/v3 v3.21.3
16+
github.com/xtaci/kcp-go v5.4.20+incompatible
17+
golang.org/x/net v0.13.0
18+
)
19+
20+
require (
21+
github.com/StackExchange/wmi v0.0.0-20190523213315-cbe66965904d // indirect
22+
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
23+
github.com/davecgh/go-spew v1.1.1 // indirect
24+
github.com/dsnet/compress v0.0.1 // indirect
25+
github.com/fredbi/uri v0.0.0-20181227131451-3dcfdacbaaf3 // indirect
26+
github.com/fsnotify/fsnotify v1.4.9 // indirect
27+
github.com/fyne-io/mobile v0.1.3-0.20210318200029-09e9c4e13a8f // indirect
28+
github.com/go-gl/gl v0.0.0-20190320180904-bf2b1f2f34d7 // indirect
29+
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20210311203641-62640a716d48 // indirect
30+
github.com/go-ole/go-ole v1.2.4 // indirect
31+
github.com/godbus/dbus/v5 v5.0.3 // indirect
32+
github.com/goki/freetype v0.0.0-20181231101311-fa8a33aabaff // indirect
33+
github.com/hooklift/assert v0.0.0-20170704181755-9d1defd6d214 // indirect
34+
github.com/klauspost/compress v1.4.1 // indirect
1635
github.com/klauspost/cpuid v1.3.1 // indirect
1736
github.com/klauspost/cpuid/v2 v2.0.6 // indirect
1837
github.com/klauspost/pgzip v1.2.1 // indirect
1938
github.com/klauspost/reedsolomon v1.9.12 // indirect
20-
github.com/panjf2000/ants/v2 v2.4.2
21-
github.com/pkg/errors v0.9.1
39+
github.com/pmezard/go-difflib v1.0.0 // indirect
2240
github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
23-
github.com/shirou/gopsutil/v3 v3.21.3
41+
github.com/srwiley/oksvg v0.0.0-20200311192757-870daf9aa564 // indirect
42+
github.com/srwiley/rasterx v0.0.0-20200120212402-85cb7272f5e9 // indirect
43+
github.com/stretchr/testify v1.6.1 // indirect
2444
github.com/templexxx/cpufeat v0.0.0-20180724012125-cef66df7f161 // indirect
2545
github.com/templexxx/xor v0.0.0-20191217153810-f85b25db303b // indirect
2646
github.com/tjfoc/gmsm v1.4.0 // indirect
27-
github.com/xtaci/kcp-go v5.4.20+incompatible
47+
github.com/tklauser/go-sysconf v0.3.11 // indirect
48+
github.com/tklauser/numcpus v0.6.1 // indirect
49+
github.com/ulikunitz/xz v0.5.6 // indirect
2850
github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae // indirect
29-
golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2 // indirect
30-
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4
31-
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57 // indirect
51+
golang.org/x/crypto v0.11.0 // indirect
52+
golang.org/x/image v0.0.0-20200430140353-33d19683fad8 // indirect
53+
golang.org/x/sys v0.10.0 // indirect
54+
golang.org/x/text v0.11.0 // indirect
55+
gopkg.in/yaml.v2 v2.2.8 // indirect
56+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c // indirect
3257
)
3358

3459
replace github.com/astaxie/beego => github.com/exfly/beego v1.12.0-export-init

0 commit comments

Comments
 (0)