# go

Goのhot reloadにgo-taskを使ってみる

Posted 8. July 2020

Programming #go #task #docker

Goでhot reloading

作っているアプリのサーバサイドをGOで書いているので、Realizeでhot reloadを実現しようと思ったのですが、 GO111MODULE=off にしないとgo getできなかったり、いざdocker-composeで realize start --run しようとすると下記のようなエラーが出たりと色々あれだったので、他に使えそうなパッケージが無いか探してみました。

...
[01:09:01][SRC] : Running..
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x4cf2fb]

goroutine 8768 [running]:
os.(*Process).signal(0x0, 0xad7a20, 0xe34878, 0x0, 0x0)
      /usr/local/go/src/os/exec_unix.go:56 +0x3b
os.(*Process).Signal(...)
      /usr/local/go/src/os/exec.go:131
github.com/oxequa/realize/realize.(*Project).run.func1(0xc000175698)
      /go/src/github.com/oxequa/realize/realize/projects.go:581 +0x5c
github.com/oxequa/realize/realize.(*Project).run(0xc0001fa000, 0xc000133ab8, 0x7, 0xc000342300, 0xc000110540, 0xad2c20, 0xc00011c8d0)
      /go/src/github.com/oxequa/realize/realize/projects.go:646 +0xc2d
github.com/oxequa/realize/realize.(*Project).Reload.func3(0xc0001fa000, 0xc000342300, 0xc000110540)
      /go/src/github.com/oxequa/realize/realize/projects.go:262 +0x147
created by github.com/oxequa/realize/realize.(*Project).Reload
      /go/src/github.com/oxequa/realize/realize/projects.go:260 +0x297
Code 1: docker-composeでrealize startした際のエラー

調べたところ、go-task が中々シンプルで良さそうだったので試してみました。

...

READ MORE

Time to read 3 min