Browse Source

started work on smaller images

worker-9 3 years ago
parent
commit
df132e2396
5 changed files with 90 additions and 1 deletions
  1. 23 0
      Dockerfile-builder
  2. 36 0
      Dockerfile-netmaker-slim
  3. 26 0
      Dockerfile-netmaker-slim-solo
  4. 4 0
      scripts/daemon.sh
  5. 1 1
      serverctl/serverctl.go

+ 23 - 0
Dockerfile-builder

@@ -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 - 0
Dockerfile-netmaker-slim

@@ -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"]

+ 26 - 0
Dockerfile-netmaker-slim-solo

@@ -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 - 0
scripts/daemon.sh

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

+ 1 - 1
serverctl/serverctl.go

@@ -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()