add Dockerfile to build the go app

This commit is contained in:
2025-01-11 01:00:32 +01:00
parent 77f391f24d
commit bda62c508e
4 changed files with 68 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ package main
import (
"crowsnest/internal/model/database"
"database/sql"
"fmt"
"log"
"net/http"
"os"
@@ -16,14 +17,35 @@ type App struct {
func main() {
// collect environement variables
databaseURL := os.Getenv("DB_URL")
dbPass := os.Getenv("DB_PASS")
if dbPass == "" {
log.Fatal("empty DB_PASS")
}
dbHost := os.Getenv("DB_HOST")
if dbHost == "" {
log.Fatal("empty DB_HOST")
}
dbPort := os.Getenv("DB_PORT")
if dbPort == "" {
dbPort = "5432"
}
dbUser := os.Getenv("DB_USER")
if dbUser == "" {
dbUser = "postgres"
}
dbName := os.Getenv("DB_NAME")
// connect to database
databaseURL := fmt.Sprintf("user=%s password=%s dbname=%s host=%s port=%s sslmode=disable",
dbUser, dbPass, dbName, dbHost, dbPort)
db, err := sql.Open("postgres", databaseURL)
if err != nil {
log.Fatal(err)
}
defer db.Close()
if err = db.Ping(); err != nil {
log.Fatal(err)
}
// define app
app := &App{