Skip to content

Commit befecfd

Browse files
committed
refactor: gserver version (docker)
1 parent 4e2afdc commit befecfd

File tree

4 files changed

+80
-6
lines changed

4 files changed

+80
-6
lines changed

cmd/server/version.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import (
55
"runtime"
66
"strings"
77

8-
"github.com/spf13/cobra"
98
"github.com/snowdreamtech/gserver/pkg/env"
9+
"github.com/spf13/cobra"
1010
)
1111

1212
func init() {
@@ -19,16 +19,21 @@ var versionCmd = &cobra.Command{
1919
Long: "All software has versions. This is " + env.ProjectName + "'s",
2020
Run: func(cmd *cobra.Command, args []string) {
2121
OSArch := runtime.GOOS + "/" + runtime.GOARCH
22-
BuildVersion := fmt.Sprintf("%s version %s %s\n", env.ProjectName, env.GitTag, OSArch)
23-
LicenseDetail := fmt.Sprintf("%s\n", env.LICENSE)
24-
AuthorDetail := fmt.Sprintf("Written by %s", env.Author)
22+
BuildVersion := fmt.Sprintf("%s version %s-%s %s\n", env.ProjectName, env.GitTag, env.CommitHash, OSArch)
23+
CopyrightDetail := fmt.Sprintf("%s\n", env.COPYRIGHT)
24+
LicenseDetail := fmt.Sprintf("License: %s\n", env.LICENSE)
25+
AuthorDetail := fmt.Sprintf("Written by %s", env.Author)
26+
BuildDetail := fmt.Sprintf("Built at %s", env.BuildTime)
2527

2628
var builder strings.Builder
2729
builder.WriteString(BuildVersion)
30+
builder.WriteString(CopyrightDetail)
2831
builder.WriteString(LicenseDetail)
2932

3033
builder.WriteString("\n")
3134
builder.WriteString(AuthorDetail)
35+
builder.WriteString("\n")
36+
builder.WriteString(BuildDetail)
3237

3338
fmt.Println(builder.String())
3439
},

docker/alpine/Dockerfile

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,39 @@ USER root
66
# Set the workdir
77
WORKDIR /root
88

9+
ENV ProjectName="gserver" \
10+
Author="Snowdream Tech <[email protected]>" \
11+
COPYRIGHT="Copyright (c) 2023-present SnowdreamTech Inc." \
12+
LICENSE="MIT <https://github.com/snowdreamtech/gserver/blob/main/LICENSE> " \
13+
CmdPath="github.com/snowdreamtech/gserver/pkg/env" \
14+
BuildTime=N/A \
15+
CommitHash=N/A \
16+
CommitHashFull=N/A \
17+
GoVersion=N/A \
18+
GitTag=N/A \
19+
Debug=false
20+
921
COPY . .
1022

23+
RUN apk add --no-cache \
24+
git
25+
1126
RUN go mod tidy \
12-
&& go build -v -o gserver
27+
&& BuildTime=$(date -u +'%Y.%m.%d %H:%M:%S %z') \
28+
&& GoVersion=$(go version | awk '{print $3,$4}') \
29+
&& CommitHash=$(git log -1 --pretty=format:%h 2>/dev/null || echo 'N/A') \
30+
&& CommitHashFull=$(git log -1 --pretty=format:%H 2>/dev/null || echo 'N/A') \
31+
&& GitTag=$(git describe --tags --abbrev=0 2>/dev/null|| echo 'N/A') \
32+
&& LDGOFLAGS="-X '${CmdPath}.ProjectName=${ProjectName}'" \
33+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.Author=${Author}'" \
34+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.BuildTime=${BuildTime}'" \
35+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.CommitHash=${CommitHash}'" \
36+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.CommitHashFull=${CommitHashFull}'" \
37+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.GoVersion=${GoVersion}'" \
38+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.GitTag=${GitTag}'" \
39+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.COPYRIGHT=${COPYRIGHT}'" \
40+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.LICENSE=${LICENSE}'" \
41+
&& go build -trimpath -ldflags "${LDGOFLAGS} -s -w" -v -o gserver
1342

1443

1544

docker/debian/Dockerfile

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,47 @@ USER root
66
# Set the workdir
77
WORKDIR /root
88

9+
ENV ProjectName="gserver" \
10+
Author="Snowdream Tech <[email protected]>" \
11+
COPYRIGHT="Copyright (c) 2023-present SnowdreamTech Inc." \
12+
LICENSE="MIT <https://github.com/snowdreamtech/gserver/blob/main/LICENSE> " \
13+
CmdPath="github.com/snowdreamtech/gserver/pkg/env" \
14+
BuildTime=N/A \
15+
CommitHash=N/A \
16+
CommitHashFull=N/A \
17+
GoVersion=N/A \
18+
GitTag=N/A \
19+
Debug=false
20+
921
COPY . .
1022

23+
RUN set -eux \
24+
&& DEBIAN_FRONTEND=noninteractive apt-get -qqy update \
25+
&& DEBIAN_FRONTEND=noninteractive apt-get -qqy install --no-install-recommends \
26+
git \
27+
&& DEBIAN_FRONTEND=noninteractive apt-get -qqy --purge autoremove \
28+
&& DEBIAN_FRONTEND=noninteractive apt-get -qqy clean \
29+
&& rm -rf /var/lib/apt/lists/* \
30+
&& rm -rf /tmp/* \
31+
&& rm -rf /var/tmp/*
32+
1133
RUN go mod tidy \
12-
&& go build -v -o gserver
34+
&& BuildTime=$(date -u +'%Y.%m.%d %H:%M:%S %z') \
35+
&& GoVersion=$(go version | awk '{print $3,$4}') \
36+
&& CommitHash=$(git log -1 --pretty=format:%h 2>/dev/null || echo 'N/A') \
37+
&& CommitHashFull=$(git log -1 --pretty=format:%H 2>/dev/null || echo 'N/A') \
38+
&& GitTag=$(git describe --tags --abbrev=0 2>/dev/null|| echo 'N/A') \
39+
&& LDGOFLAGS="-X '${CmdPath}.ProjectName=${ProjectName}'" \
40+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.Author=${Author}'" \
41+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.BuildTime=${BuildTime}'" \
42+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.CommitHash=${CommitHash}'" \
43+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.CommitHashFull=${CommitHashFull}'" \
44+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.GoVersion=${GoVersion}'" \
45+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.GitTag=${GitTag}'" \
46+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.COPYRIGHT=${COPYRIGHT}'" \
47+
&& LDGOFLAGS="${LDGOFLAGS} -X '${CmdPath}.LICENSE=${LICENSE}'" \
48+
&& go build -trimpath -ldflags "${LDGOFLAGS} -s -w" -v -o gserver
49+
1350

1451

1552

pkg/env/env.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ var (
2525
//CommitHashFull Commit Hash
2626
CommitHashFull string
2727

28+
//COPYRIGHT COPYRIGHT
29+
COPYRIGHT string
30+
2831
//LICENSE LICENSE
2932
LICENSE string
3033
)

0 commit comments

Comments
 (0)