From 7717a3b866f2e5c877bacd9aaae97b67ac1831ab Mon Sep 17 00:00:00 2001 From: bagas Date: Wed, 14 May 2025 11:49:53 +0700 Subject: [PATCH] update: add dockerfile --- Dockerfile | 20 ++++++++++++++++++++ main.go | 5 +++-- server/https.go | 3 ++- server/server.go | 6 ++---- 4 files changed, 27 insertions(+), 7 deletions(-) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bcf7752 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM golang:1.23.1-alpine3.20 AS go_builder + +WORKDIR /src +COPY . . + +RUN apk update && apk upgrade && apk add --no-cache ca-certificates tzdata +RUN update-ca-certificates +RUN go build -o ./tmp/main + +FROM scratch + +WORKDIR /src + +COPY --from=go_builder /usr/share/zoneinfo /usr/share/zoneinfo +COPY --from=go_builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +COPY --from=go_builder /src/tmp/main /src + +ENV TZ Asia/Jakarta + +ENTRYPOINT ["./main"] \ No newline at end of file diff --git a/main.go b/main.go index abbea0a..1fb275c 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "log" "os" "tunnel_pls/server" + "tunnel_pls/utils" ) func main() { @@ -19,9 +20,9 @@ func main() { log.SetOutput(os.Stdout) log.SetFlags(log.LstdFlags | log.Lshortfile) - privateBytes, err := os.ReadFile("id_rsa") + privateBytes, err := os.ReadFile(utils.Getenv("ssh_private_key")) if err != nil { - log.Fatal("Failed to load private key (./id_rsa)") + log.Fatalf("Failed to load private key : %s", err.Error()) } private, err := ssh.ParsePrivateKey(privateBytes) diff --git a/server/https.go b/server/https.go index d9407f5..2d83e5b 100644 --- a/server/https.go +++ b/server/https.go @@ -10,10 +10,11 @@ import ( "strings" "time" "tunnel_pls/session" + "tunnel_pls/utils" ) func NewHTTPSServer() error { - cert, err := tls.LoadX509KeyPair("certs/localhost.direct.SS.crt", "certs/localhost.direct.SS.key") + cert, err := tls.LoadX509KeyPair(utils.Getenv("cert_loc"), utils.Getenv("key_loc")) if err != nil { return err } diff --git a/server/server.go b/server/server.go index f5df009..3f5e739 100644 --- a/server/server.go +++ b/server/server.go @@ -25,11 +25,9 @@ func NewServer(config ssh.ServerConfig) *Server { go func() { err := NewHTTPSServer() if err != nil { - if err != nil { - log.Fatalf("failed to start https server: %v", err) - } - return + log.Fatalf("failed to start https server: %v", err) } + return }() } go func() {