@tobi: golang alpine image with cgo for sqlite3

Picking up go is a lot of fun! So does a few of my colleagues :-) Tobi M. (“the destroyer”) asked if i have a solution to run a golang docker image with the go-sqlite3 driver I remembered to had the same problem, so after my post about really small docker images, lets add a few more bytes! the solution This solution is not my own, i found and tried other solutions but stayed with this Dockerfile on github...

CSS quicky: fixing flexbox width with pre tags

I am pretty happy with my minimal blog layout - in the code it looks something like: <div id="content-container"> <div id="content"></div> <div id="sidebar"></div> </div> with the css code #content-container { display: flex; } #content { flex: 1; } #sidebar { max-width: 210px; } nothing too exciting… While i’m writing several drafts, i had looong docker commands in pre tags, and it broke the layout - i don’t know why, but the pre tags didn’t want to break the lines....

building go binaries for small docker images

building docker images with go should be super easy - picking a minimal image (in my case I build from alpine), build the binary, ADD to the image, run… the problem your app is not starting, instead you see something like this standard_init_linux.go:195: exec user process caused "no such file or directory" cause: several modules are calling C code via cgo, and cgo depends on libc. Go found libc on the system it was build on, so it linked to it....

setting up continuous delivery with drone

Long, long time ago, i started to manage my spare time projects with git, to make life a bit easier there were tools like gitosis and later gitolite - you managed repositories and public keys in plain text files and git hooks on the server. Last year i decided to join the shiny new world of modern self-hosting git services. I choose Gitea - copied it on the server, started one 40 mb binary, and it was just working - and it was fast....

debounce function for golang

for my presentation tool slide-serve i used fsnotify to watch for changes to reload the browser. But for whatever reason, the events always came in doubled… so i tried to port the idea behind the underscore or RX debounce function to golang. This is the solution i came up with: func debounce(interval time.Duration, input chan string, cb func(arg string)) { var item string timer := time.NewTimer(interval) for { select { case item = <-input: timer....

Last posts

Tags