Browse Source

stale branch but its fine, i added dockerfile to build a container to test with github actions and my container registry

aeth 1 week ago
parent
commit
609707dc86
4 changed files with 34 additions and 8 deletions
  1. 18 0
      Dockerfile
  2. 8 1
      Makefile
  3. 3 3
      cmd/keiji/keiji.go
  4. 5 4
      pkg/env/env.go

+ 18 - 0
Dockerfile

@@ -0,0 +1,18 @@
+FROM horus-harbor01.void-society.online/base-images/golang:1.25.5
+
+RUN mkdir -p /tmp/build
+
+WORKDIR /tmp/build
+
+COPY ./Makefile .
+COPY ./assets/ ./assets/
+COPY ./cmd/ ./cmd/
+COPY ./go.mod .
+COPY ./go.sum .
+COPY ./pkg/ ./pkg/
+COPY ./scripts/ ./scripts/
+
+RUN ls -lha && make build && make root-install
+
+CMD ["keiji", "-content", "embed"]
+

+ 8 - 1
Makefile

@@ -6,11 +6,18 @@ SEED_CMD = keiji-ctl
 SWAG := $(shell command -v swag 2> /dev/null)
 ## Have to set the WEB_ROOT and DOMAIN_NAME environment variables when building
 build:
+	mkdir -p ./build/linux/$(WEBSERVER) ./build/linux/$(SEED_CMD)
 	go build -o ./build/linux/$(WEBSERVER)/$(WEBSERVER) ./cmd/$(WEBSERVER)/$(WEBSERVER).go && \
 	go build -o ./build/linux/$(SEED_CMD)/$(SEED_CMD) ./cmd/$(SEED_CMD)/$(SEED_CMD).go
 
+root-install:
+	cp ./build/linux/$(SEED_CMD)/$(SEED_CMD) /bin \
+	&& cp ./build/linux/$(WEBSERVER)/$(WEBSERVER) /bin
+
 install:
-	sudo cp ./build/linux/$(SEED_CMD)/$(SEED_CMD) /usr/local/bin/
+	sudo mkdir -p /usr/local/bin \
+	&& sudo cp ./build/linux/$(SEED_CMD)/$(SEED_CMD) /usr/local/bin/ \
+	&& sudo cp ./build/linux/$(WEBSERVER)/$(WEBSERVER) /usr/local/bin/
 
 format:
 	go fmt ./...

+ 3 - 3
cmd/keiji/keiji.go

@@ -44,9 +44,9 @@ func main() {
 		fmt.Println("Blank template written to: .env.template")
 		os.Exit(0)
 	}
-	err := env.LoadAndVerifyEnv(envPath, env.REQUIRED_VARS)
-	if err != nil {
-		log.Fatal("Error when loading env file: ", err)
+	missing := env.LoadAndVerifyEnv(envPath, env.REQUIRED_VARS)
+	if len(missing) != 0 {
+		log.Fatalf("Error when loading/parsing environment variables: %s\n", missing)
 	}
 	var srcOpt webpages.ServiceOption
 	switch contentMode {

+ 5 - 4
pkg/env/env.go

@@ -93,17 +93,18 @@ verify all environment vars passed in are set
 
 	:param vars: array of strings to verify
 */
-func LoadAndVerifyEnv(path string, vars map[string]string) error {
+func LoadAndVerifyEnv(path string, vars map[string]string) []string {
 
 	err := godotenv.Load(path)
 	if err != nil {
-		return err
+		fmt.Printf("Non-fatal error raised: %s\n", err.Error())
 	}
 
+	missing := []string{}
 	for k := range vars {
 		if os.Getenv(k) == "" {
-			return &EnvNotSet{NotSet: k}
+			missing = append(missing, k)
 		}
 	}
-	return nil
+	return missing
 }