started work on smaller images

This commit is contained in:
worker-9 2021-09-27 09:57:12 -04:00
parent a36aa5cc89
commit df132e2396
5 changed files with 90 additions and 1 deletions

23
Dockerfile-builder Normal file
View file

@ -0,0 +1,23 @@
FROM alpine:3.13.6
RUN apk add --no-cache --virtual .build-deps bash gcc musl-dev openssl go
RUN wget -O go.tgz https://dl.google.com/go/go1.17.1.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
RUN apk del .build-deps
RUN apk add build-base

36
Dockerfile-netmaker-slim Normal file
View file

@ -0,0 +1,36 @@
#first stage - builder
FROM gravitl/builder as builder
WORKDIR /app
COPY . .
ENV GO111MODULE=auto
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netmaker main.go
WORKDIR /app/netclient
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netclient main.go
#second stage
FROM alpine:3.13.6
# add glib support daemon manager
RUN apk add gcompat iptables
# set the working directory
WORKDIR /root/
RUN mkdir /etc/netclient
COPY --from=builder /app/netmaker .
COPY --from=builder /app/config config
COPY --from=builder /app/netclient/netclient /etc/netclient/netclient
COPY --from=builder /app/scripts/daemon.sh .
EXPOSE 8081
EXPOSE 50051
RUN touch /etc/netclient/netclient.logs
RUN sh daemon.sh
ENTRYPOINT ["./netmaker"]

View file

@ -0,0 +1,26 @@
FROM gravitl/builder:latest as builder
# add glib support daemon manager
WORKDIR /app
COPY . .
ENV GO111MODULE=auto
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netmaker main.go
FROM alpine:3.13.6
RUN apk add gcompat
# set the working directory
WORKDIR /root/
COPY --from=builder /app/netmaker .
COPY --from=builder /app/config .
RUN mkdir -p config/dnsconfig
RUN touch config/dnsconfig/Corefile && touch config/dnsconfig/netmaker.hosts
EXPOSE 8081
EXPOSE 50051
ENTRYPOINT ["./netmaker"]

4
scripts/daemon.sh Normal file
View file

@ -0,0 +1,4 @@
while [ 1 ]; do
/etc/netclient/netclient checkin -n all >> /etc/netclient/netclient.logs 2&1>
sleep 15
done &

View file

@ -134,7 +134,7 @@ func AddNetwork(network string) (bool, error) {
}
functions.PrintUserLog(models.NODE_SERVER_NAME, "executing network join: "+netclientPath+"netclient "+"join "+"-t "+token+" -name "+models.NODE_SERVER_NAME+" -endpoint "+pubip, 0)
joinCMD := exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip)
joinCMD := exec.Command(netclientPath+"netclient", "join", "-t", token, "-name", models.NODE_SERVER_NAME, "-endpoint", pubip, "-daemon", "off")
joinCMD.Stdout = os.Stdout
joinCMD.Stderr = os.Stderr
err = joinCMD.Start()