Add files

This commit is contained in:
Rob Watson 2020-05-31 11:15:51 +02:00
parent ff43e48d85
commit f56dd36bdf
4 changed files with 65 additions and 2 deletions

7
Dockerfile Normal file
View File

@ -0,0 +1,7 @@
FROM golang:alpine
ADD . /go/src/git.netflux.io/rob/simple-http-page-docker/
RUN go install git.netflux.io/rob/simple-http-page-docker
ENTRYPOINT /go/bin/simple-http-page-docker
EXPOSE 3000

View File

@ -1,4 +1,4 @@
MIT License Copyright (c) <year> <copyright holders>
MIT License Copyright (c) 2020 Rob Watson
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@ -1,3 +1,11 @@
# simple-http-page-docker
A Docker container that runs an HTTP server returning a simple one-line plain text response.
A Docker container that runs an HTTP server returning a simple one-line plain text response.
Available at https://hub.docker.com/r/netfluxio/simple-http-page-docker.
Environment variables:
* `RESPONSE_STRING` - the HTTP response body
* `STATUS_CODE` - the numeric HTTP status code (default: 200)
* `BIND_ADDR` - bind string (default: `:3000`)

48
main.go Normal file
View File

@ -0,0 +1,48 @@
package main
import (
"fmt"
"log"
"net/http"
"os"
"strconv"
)
const (
defaultBindAddress = ":3000"
defaultResponseString = "Hello world"
defaultResponseStatus = http.StatusOK
)
func main() {
addr, ok := os.LookupEnv("BIND_ADDR")
if !ok {
addr = defaultBindAddress
}
responseString, ok := os.LookupEnv("RESPONSE_STRING")
if !ok {
responseString = defaultResponseString
}
var statusCode int
statusCodeString, ok := os.LookupEnv("STATUS_CODE")
if ok {
var err error
statusCode, err = strconv.Atoi(statusCodeString)
if err != nil {
log.Fatal(err)
}
} else {
statusCode = defaultResponseStatus
}
http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
w.Header().Set("Content-Type", "text/plain")
w.WriteHeader(statusCode)
fmt.Fprintf(w, responseString)
})
fmt.Printf("Listening on %s...\n", addr)
log.Fatal(http.ListenAndServe(addr, nil))
}