From 91e382c586e3444360af0067de3d35347780fc30 Mon Sep 17 00:00:00 2001
From: Bolke de Bruin <bolke@xs4all.nl>
Date: Mon, 18 Mar 2024 13:36:41 +0100
Subject: [PATCH] Move to more flexibility in image

---
 cmd/rdpgw/config/configuration.go | 11 ++++++++---
 dev/docker/Dockerfile             |  2 +-
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/cmd/rdpgw/config/configuration.go b/cmd/rdpgw/config/configuration.go
index 8bd1ff4..43e6761 100644
--- a/cmd/rdpgw/config/configuration.go
+++ b/cmd/rdpgw/config/configuration.go
@@ -8,6 +8,7 @@ import (
 	"github.com/knadh/koanf/providers/file"
 	"github.com/knadh/koanf/v2"
 	"log"
+	"os"
 	"strings"
 )
 
@@ -152,8 +153,12 @@ func Load(configFile string) Configuration {
 		"Caps.TokenAuth":             true,
 	}, "."), nil)
 
-	if err := k.Load(file.Provider(configFile), yaml.Parser()); err != nil {
-		log.Fatalf("Error loading config from file: %v", err)
+	if _, err := os.Stat(configFile); os.IsNotExist(err) {
+		log.Printf("Config file %s not found, using defaults and environment", configFile)
+	} else {
+		if err := k.Load(file.Provider(configFile), yaml.Parser()); err != nil {
+			log.Fatalf("Error loading config from file: %v", err)
+		}
 	}
 
 	if err := k.Load(env.ProviderWithValue("RDPGW_", ".", func(s string, v string) (string, interface{}) {
@@ -161,7 +166,7 @@ func Load(configFile string) Configuration {
 		key = ToCamel(key)
 		return key, v
 	}), nil); err != nil {
-		log.Fatalf("Error loading config from file: %v", err)
+		log.Fatalf("Error loading config from environment: %v", err)
 	}
 
 	koanfTag := koanf.UnmarshalConf{Tag: "koanf"}
diff --git a/dev/docker/Dockerfile b/dev/docker/Dockerfile
index 6d91e06..f0e4a75 100644
--- a/dev/docker/Dockerfile
+++ b/dev/docker/Dockerfile
@@ -41,7 +41,7 @@ COPY --chown=1001 run.sh run.sh
 COPY --chown=1001 --from=builder /opt/rdpgw /opt/rdpgw
 COPY --chown=1001 --from=builder /etc/passwd /etc/passwd
 COPY --chown=1001 --from=builder /etc/ssl/certs /etc/ssl/certs
-COPY --chown=1001 rdpgw.yaml /opt/rdpgw/rdpgw.yaml
+#COPY --chown=1001 rdpgw.yaml /opt/rdpgw/rdpgw.yaml
 
 WORKDIR /opt/rdpgw
 ENTRYPOINT ["/bin/sh", "/run.sh"]
-- 
GitLab