Compare commits

...

3 Commits

Author SHA1 Message Date
ngfchl fbb1e81d78 fix: rewrite package.bat for reliable Windows builds 2026-06-19 16:31:41 +08:00
ngfchl 27a6da4d32 fix: sanitize timestamp in package.bat ldflags 2026-06-19 16:27:08 +08:00
ngfchl 9e0f84819a docker: add server Dockerfile with multi-stage build 2026-06-19 16:22:57 +08:00
3 changed files with 61 additions and 9 deletions
+16
View File
@@ -0,0 +1,16 @@
.git
.gitignore
.idea
.vscode
dist
data
client
server
*.exe
*.test
*.out
*.zip
Makefile
package.bat
LICENSE
README.md
+33
View File
@@ -0,0 +1,33 @@
FROM golang:1.26-alpine AS build
RUN apk add --no-cache git
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY . .
ARG VERSION=1.0.0
ARG BUILD_TIME
RUN CGO_ENABLED=0 GOOS=linux go build \
-ldflags "-s -w -X 'main.Version=${VERSION}' -X 'main.BuildTime=${BUILD_TIME}'" \
-o /out/monitor-server ./cmd/server
# ── Runtime ──
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata
WORKDIR /app
COPY --from=build /out/monitor-server .
COPY server.yaml .
RUN mkdir -p data
EXPOSE 8080
VOLUME ["/app/data"]
ENTRYPOINT ["./monitor-server"]
+12 -9
View File
@@ -2,12 +2,18 @@
setlocal
set VERSION=1.0.0
set LDFLAGS=-s -w -X "main.Version=%VERSION%" -X "main.BuildTime=%DATE% %TIME%"
REM -- 获取干净时间戳 (powershell) --
for /f %%I in ('powershell -NoProfile -Command "Get-Date -Format 'yyyy-MM-dd HH:mm:ss'"') do set BUILD_TIME=%%I
set GOOS=windows
set GOARCH=amd64
set LDFLAGS=-s -w -X main.Version=%VERSION% -X main.BuildTime=%BUILD_TIME%
echo.
echo Building Server...
mkdir dist\server\data 2>nul
set GOOS=windows&& set GOARCH=amd64&& go build -ldflags "%LDFLAGS%" -o dist\server\monitor-server.exe .\cmd\server
if not exist dist\server\data mkdir dist\server\data
go build -ldflags "%LDFLAGS%" -o dist\server\monitor-server.exe .\cmd\server
if %errorlevel% neq 0 (
echo [ERROR] Server build failed!
pause
@@ -15,8 +21,8 @@ if %errorlevel% neq 0 (
)
echo Building Client...
mkdir dist\client 2>nul
set GOOS=windows&& set GOARCH=amd64&& go build -ldflags "%LDFLAGS%" -o dist\client\monitor-client.exe .\cmd\client
if not exist dist\client mkdir dist\client
go build -ldflags "%LDFLAGS%" -o dist\client\monitor-client.exe .\cmd\client
if %errorlevel% neq 0 (
echo [ERROR] Client build failed!
pause
@@ -29,7 +35,4 @@ echo Server: dist\server\monitor-server.exe
echo Client: dist\client\monitor-client.exe
echo ===================================================
echo.
echo Server 分发: 复制 dist\server\ 整个文件夹
echo Client 分发: 复制 dist\client\ 整个文件夹
echo.
pause
pause