Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
February 19, 2022 06:43 pm GMT

Air: Live reload on Golang applications

Go is a programming language with advanced features and clean syntax. It has a robust and well-documented common library, and has focus on good software engineering and principles.

Although Go is a great language, there's one downside: it needs to be recompiled every time after a single line change.

So, to make our lives easier in this post we're gonna learn how to use Air as our live reload.

App

Init with Go mod

go mod init helloworld

Creating App Go file

package mainimport (    "fmt"    "net/http")func main() {    port := 3000    fmt.Println("Starting Server on port", port)    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {        w.Write([]byte("Hello, World"))    })    http.ListenAndServe(":3000", nil)}

Air:

Installing Air.

go get -u github.com/cosmtrek/air

Air configuration file

air init

Starting Air.

air

You'll have the following result:

Air running

Now after any file change Air will reload your app automatically.

Air reloading

Air and Docker

First we need to create a Dockerfile

# DockerfileFROM cosmtrek/airRUN mkdir -p /app/distCOPY ./ /app/WORKDIR /app/RUN go get -d -v ./...RUN go install -v ./...CMD ["air"]

Now we need to create a docker-compose to make our life easier

# docker-compose.ymlversion: '3.7'services:  app:    build: .    ports:      - '3000:3000'    volumes:      - ./:/app/

Now you just need to run docker-compose up

And you'll have the following result:

Air in docker container

References:


Original Link: https://dev.to/brenoalves/air-live-reload-on-golang-applications-1fgk

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To