Compiling Traefik on illumos

Sombody asked for help to compile traefik on illumos today, so I figured I'll write up a quick guide

You will need the following packages * npm * nodejs * go 1.13+

I am using pkgsrc to be compatible with most illumos distros

Critical: npm must be run as unprivileged and /opt/local/bin must be in PATH

# Ensure npm works
export PATH=/usr/gnu/bin:$GOPATH/bin:$PATH:/opt/local/bin

# On Openindiana install go 1.13
pkg install golang-113

# Install required packages
pkgin in nodejs-10.16.3 npm

# Get the sources
git clone git@github.com:containous/traefik.git
cd traefik
git checkout v2.0.5

# based on the Dockerfiles get the module dependencies
go mod download

# Compile the WebUI
# note that I had to do this on a linux host as node-sass did not want to compile for me..... 
pushd webui
npm install
npm run build
mv dist/pwa/* ../static/
popd

# Here you will need to patch dockers client code a bit for traefik to build
# add "solaris illumos" to $GOPATHpkg/mod/github.com/docker/engine@v0.0.0-20190725163905-fa8dd90ceb7b/client/client_unix.go
# see https://github.com/docker/engine/compare/master...Toasterson:patch-1
# a Pull Request is opened for this with the guys from docker 
# https://github.com/docker/engine/pull/426

GO111MODULE=off go get github.com/containous/go-bindata/...

./scripts/generate
./scripts/binary

And that gets you a working traefik binary.