FROM debian:buster as builder
# add glib support daemon manager

RUN apt update -y && apt install -y wget bash gcc musl-dev openssl golang git build-essential libmnl-dev iptables

RUN wget -O go.tgz https://go.dev/dl/go1.18.linux-amd64.tar.gz

RUN tar -C /usr/local -xzf go.tgz

WORKDIR /usr/local/go/src

RUN chmod +x make.bash

RUN ./make.bash

ENV PATH="/usr/local/go/bin:$PATH"

ENV GOPATH=/opt/go/

ENV PATH=$PATH:$GOPATH/bin

WORKDIR /app

COPY . .

ENV GO111MODULE=auto

RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 /usr/local/go/bin/go build -ldflags="-w -s" -o netclient-app netclient/main.go

FROM debian:buster

WORKDIR /root/

RUN apt update -y && apt install -y bash curl wget traceroute procps dnsutils iptables openresolv iproute2
COPY --from=builder /app/netclient-app ./netclient
COPY --from=builder /app/scripts/netclient.sh .
RUN chmod 0755 netclient && chmod 0755 netclient.sh

ENTRYPOINT ["/bin/sh", "./netclient.sh"]
