From 689d31c2462e2d44ad871b8d2a47ca00ed433817 Mon Sep 17 00:00:00 2001 From: douxu Date: Wed, 17 Dec 2025 17:09:20 +0800 Subject: [PATCH] optimize dockerfile and config generate of docker deploy --- deploy/dockerfile/modelrt.Dockerfile | 6 +++++- main.go | 10 ++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/deploy/dockerfile/modelrt.Dockerfile b/deploy/dockerfile/modelrt.Dockerfile index 0bb0e5b..e251642 100644 --- a/deploy/dockerfile/modelrt.Dockerfile +++ b/deploy/dockerfile/modelrt.Dockerfile @@ -9,7 +9,11 @@ RUN CGO_ENABLED=0 go build -ldflags="-s -w" -o modelrt main.go FROM alpine:latest WORKDIR /app +ARG USER_ID=1000 +RUN adduser -D -u ${USER_ID} modelrt COPY --from=builder /app/modelrt ./modelrt COPY configs/config.example.yaml ./configs/config.example.yaml +RUN chown -R modelrt:modelrt /app RUN chmod +x /app/modelrt -CMD ["/app/modelrt"] \ No newline at end of file +USER modelrt +CMD ["/app/modelrt", "-modelRT_config_dir=/app/configs"] \ No newline at end of file diff --git a/main.go b/main.go index 5cd001f..2376fda 100644 --- a/main.go +++ b/main.go @@ -72,14 +72,16 @@ func main() { log.Println("configuration file not found,checking for example file") exampleConfigPath := filepath.Join(*modelRTConfigDir, *modelRTConfigName+".example."+*modelRTConfigType) + configDir := filepath.Dir(configPath) + if err := os.MkdirAll(configDir, 0o755); err != nil { + panic(fmt.Errorf("failed to create config directory %s:%w", configDir, err)) + } if _, err := os.Stat(exampleConfigPath); err == nil { if err := util.CopyFile(exampleConfigPath, configPath); err != nil { - panicErr := fmt.Errorf("failed to copy example config file:%w", err) - panic(panicErr) + panic(fmt.Errorf("failed to copy example config file:%w", err)) } } else { - panicErr := errors.New("no config file and no config example file found") - panic(panicErr) + panic(errors.New("no config file and no config example file found")) } }