< Docker 
 
 
      Dockerfile
# Configures a Go web server and copies the current folder content
# to use as server root.
# Use the following commands to build and run the server.
#   docker build -t go-server .
#   docker run -d -p 8000:8000 --name=go-server go-server
# Then open a web browser and connect to http://localhost:8000 .
# References:
#   https://blog.logrocket.com/creating-a-web-server-with-golang/
#build stage
FROM golang:alpine AS builder
RUN apk add --no-cache git
WORKDIR /go/src/app
COPY . .
RUN go get -d -v ./...
RUN go install -v ./...
#final stage
FROM alpine:latest
RUN apk --no-cache add ca-certificates
COPY --from=builder /go/bin/app /app
ENTRYPOINT ./app
EXPOSE 8000
server.go
// Displays "Hello world!"
//
// References:
//  https://repl.it/@mauriycf/A-simple-web-server-in-go#main.go
//  https://gowebexamples.com/hello-world/
package main
import (
    "net/http"
    "io"
)
func handler(response http.ResponseWriter, request *http.Request) {
    io.WriteString(response, "Hello world!")
}
func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8000", nil)
}
Try It
Online Free
- Use Play with Docker. Create an account and/or log in.
- Start an interactive session and add a new instance.
- In the terminal window, enter the following commands:
- touch Dockerfile
- touch server.go
 
- Use the Editorbutton to edit both files and save the contents above into each respective file.
- Run the following commands:
- docker build -t go-server .
- docker run -d -p 8000:8000 --name=go-server go-server
 
- In the top window, select the 8000button to connect to the running server.
On Your Own System
- Install Docker Desktop or the Docker Engine.
- Save the files above into a new Docker Flaskfolder:- Dockerfile
- server.go
 
- At a command prompt, change to the Docker Flaskfolder and then run the following commands:- docker build -t go-server .
- docker run -d -p 8000:8000 --name=go-server go-server
 
- Open a web browser to connect to the running server:
See Also
    This article is issued from Wikiversity. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.