Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save olivernadj/e1a02f5ed1731c2ccced554cec0fc928 to your computer and use it in GitHub Desktop.
Save olivernadj/e1a02f5ed1731c2ccced554cec0fc928 to your computer and use it in GitHub Desktop.
Simple Golang echo server shipped in docker image

Deployment

Build

docker build -t echo-server .
docker tag echo-server olivernadj/echo-server
docker push olivernadj/echo-server

Run

docker pull olivernadj/echo-server && \
docker stop echo-server-container && \
docker rm echo-server-container && \
docker run --name=echo-server-container -p 8080:8080 -d olivernadj/echo-server

Dev

docker build -t echo-server .
docker run --name echo-server-container -p 8080:8080 --rm -it echo-server

kubectl

kubectl delete --all pods &&   kubectl delete --all deployments &&   kubectl delete --all services
kubectl create -f echo-server.yaml,echo-server-service.yaml
FROM golang:1.12
MAINTAINER Oliver Nadj <mr.oliver.nadj@gmail.com>
ADD main.go /go/src/main.go
EXPOSE 8080
WORKDIR /go/src
ENTRYPOINT [ "go", "run", "main.go"]
apiVersion: v1
kind: Service
metadata:
name: echoserver-service
spec:
type: LoadBalancer
ports:
- port: 8080
targetPort: echo-port
protocol: TCP
selector:
app: echoserver
apiVersion: v1
kind: Pod
metadata:
name: echoserver.example.com
labels:
app: echoserver
spec:
containers:
- image: olivernadj/echo-server
name: echo-server
ports:
- name: echo-port
containerPort: 8080
package main
import (
"log"
"net/http"
)
func EchoHandler(writer http.ResponseWriter, request *http.Request) {
request.Write(writer)
writer.Write([]byte("\nGreetings from coderschool.vn\n"))
}
func main() {
log.Println("starting server, listening on port 8080")
http.HandleFunc("/", EchoHandler)
http.ListenAndServe(":8080", nil)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment