From 8b2e437ecb0122ee7277a0a5a984392aee660df7 Mon Sep 17 00:00:00 2001 From: orcas Date: Thu, 20 Jun 2019 08:30:36 +0800 Subject: [PATCH] Initial commit --- .env | 1 + Dockerfile | 15 +++++++++++++++ go.mod | 8 ++++++++ go.sum | 4 ++++ main.go | 29 +++++++++++++++++++++++++++++ 5 files changed, 57 insertions(+) create mode 100644 .env create mode 100644 Dockerfile create mode 100644 go.mod create mode 100644 go.sum create mode 100644 main.go diff --git a/.env b/.env new file mode 100644 index 0000000..70c984c --- /dev/null +++ b/.env @@ -0,0 +1 @@ +LISTEN=:80 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c0a1b51 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM golang:1.11-rc-alpine as build + +RUN apk add --no-cache git=2.18.1-r0 + +WORKDIR /src +COPY go.mod go.sum .env *.go ./ +RUN go get -d -v ./... +RUN CGO_ENABLED=0 go build -ldflags "-s -w" + +FROM scratch + +COPY --from=build /src/pictures /pictures +COPY --from=build /src/.env /.env + +ENTRYPOINT ["/pictures"] diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..a9e778e --- /dev/null +++ b/go.mod @@ -0,0 +1,8 @@ +module pictures + +go 1.12 + +require ( + github.com/joho/godotenv v1.3.0 + github.com/julienschmidt/httprouter v1.2.0 +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..5b676ac --- /dev/null +++ b/go.sum @@ -0,0 +1,4 @@ +github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= +github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= +github.com/julienschmidt/httprouter v1.2.0 h1:TDTW5Yz1mjftljbcKqRcrYhd4XeOoI98t+9HbQbYf7g= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= diff --git a/main.go b/main.go new file mode 100644 index 0000000..64dfdde --- /dev/null +++ b/main.go @@ -0,0 +1,29 @@ +package main + +import ( + "encoding/json" + "log" + "net/http" + "os" + + "github.com/joho/godotenv" + "github.com/julienschmidt/httprouter" +) + +var listen string + +func main() { + // Load .env + err := godotenv.Load() + if err != nil { + log.Fatal("Error loading .env file") + } + listen = os.Getenv("LISTEN") + + // Routes + router := httprouter.New() + + // Start server + log.Printf("starting server on %s", listen) + log.Fatal(http.ListenAndServe(listen, router)) +}