mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-07 20:38:51 +08:00
commit
a2fe77ecef
11 changed files with 102 additions and 96 deletions
2
.dockerignore
Normal file
2
.dockerignore
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
config/dnsconfig/
|
||||||
|
data/
|
30
Dockerfile
30
Dockerfile
|
@ -1,36 +1,26 @@
|
||||||
#first stage - builder
|
#first stage - builder
|
||||||
|
FROM gravitl/builder as builder
|
||||||
FROM golang:latest as builder
|
|
||||||
|
|
||||||
COPY . /app
|
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
ENV GO111MODULE=auto
|
COPY . .
|
||||||
|
|
||||||
RUN GOARCH=amd64 CGO_ENABLED=1 GOOS=linux go build -ldflags="-w -s" -o app main.go
|
|
||||||
|
|
||||||
WORKDIR /app/netclient
|
|
||||||
|
|
||||||
ENV GO111MODULE=auto
|
ENV GO111MODULE=auto
|
||||||
|
|
||||||
RUN GOARCH=amd64 CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o netclient main.go
|
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=1 /usr/local/go/bin/go build -ldflags="-w -s" -o netmaker main.go
|
||||||
|
|
||||||
#second stage
|
|
||||||
|
|
||||||
FROM debian:latest
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y install systemd procps
|
|
||||||
|
|
||||||
|
FROM alpine:3.13.6
|
||||||
|
# add a c lib
|
||||||
|
RUN apk add gcompat iptables
|
||||||
|
# set the working directory
|
||||||
WORKDIR /root/
|
WORKDIR /root/
|
||||||
|
|
||||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
RUN mkdir -p /etc/netclient/config
|
||||||
|
|
||||||
COPY --from=builder /app .
|
COPY --from=builder /app/netmaker .
|
||||||
COPY --from=builder /app/config config
|
COPY --from=builder /app/config config
|
||||||
COPY --from=builder /app/netclient netclient
|
|
||||||
|
|
||||||
EXPOSE 8081
|
EXPOSE 8081
|
||||||
EXPOSE 50051
|
EXPOSE 50051
|
||||||
|
|
||||||
CMD ["./app"]
|
ENTRYPOINT ["./netmaker"]
|
||||||
|
|
|
@ -24,7 +24,7 @@ services:
|
||||||
SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
|
SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
|
||||||
API_PORT: "8081"
|
API_PORT: "8081"
|
||||||
GRPC_PORT: "50051"
|
GRPC_PORT: "50051"
|
||||||
CLIENT_MODE: "contained"
|
CLIENT_MODE: "on"
|
||||||
MASTER_KEY: "REPLACE_MASTER_KEY"
|
MASTER_KEY: "REPLACE_MASTER_KEY"
|
||||||
SERVER_GRPC_WIREGUARD: "off"
|
SERVER_GRPC_WIREGUARD: "off"
|
||||||
CORS_ALLOWED_ORIGIN: "*"
|
CORS_ALLOWED_ORIGIN: "*"
|
||||||
|
|
|
@ -24,7 +24,7 @@ services:
|
||||||
SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
|
SERVER_GRPC_HOST: "grpc.NETMAKER_BASE_DOMAIN"
|
||||||
API_PORT: "8081"
|
API_PORT: "8081"
|
||||||
GRPC_PORT: "50051"
|
GRPC_PORT: "50051"
|
||||||
CLIENT_MODE: "contained"
|
CLIENT_MODE: "on"
|
||||||
MASTER_KEY: "REPLACE_MASTER_KEY"
|
MASTER_KEY: "REPLACE_MASTER_KEY"
|
||||||
SERVER_GRPC_WIREGUARD: "off"
|
SERVER_GRPC_WIREGUARD: "off"
|
||||||
CORS_ALLOWED_ORIGIN: "*"
|
CORS_ALLOWED_ORIGIN: "*"
|
||||||
|
|
36
docker/Dockerfile-full
Normal file
36
docker/Dockerfile-full
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
#first stage - builder
|
||||||
|
|
||||||
|
FROM golang:latest as builder
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENV GO111MODULE=auto
|
||||||
|
|
||||||
|
RUN GOARCH=amd64 CGO_ENABLED=1 GOOS=linux go build -ldflags="-w -s" -o app main.go
|
||||||
|
|
||||||
|
WORKDIR /app/netclient
|
||||||
|
|
||||||
|
ENV GO111MODULE=auto
|
||||||
|
|
||||||
|
RUN GOARCH=amd64 CGO_ENABLED=0 GOOS=linux go build -ldflags="-w -s" -o netclient main.go
|
||||||
|
|
||||||
|
#second stage
|
||||||
|
|
||||||
|
FROM debian:latest
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install systemd procps
|
||||||
|
|
||||||
|
WORKDIR /root/
|
||||||
|
|
||||||
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
|
||||||
|
COPY --from=builder /app .
|
||||||
|
COPY --from=builder /app/config config
|
||||||
|
COPY --from=builder /app/netclient netclient
|
||||||
|
|
||||||
|
EXPOSE 8081
|
||||||
|
EXPOSE 50051
|
||||||
|
|
||||||
|
CMD ["./app"]
|
|
@ -1,26 +1,22 @@
|
||||||
#first stage - builder
|
FROM gravitl/builder:latest as builder
|
||||||
|
# add glib support daemon manager
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
FROM golang:latest as builder
|
COPY . .
|
||||||
|
|
||||||
COPY . /app
|
|
||||||
|
|
||||||
WORKDIR /app/netclient
|
|
||||||
|
|
||||||
ENV GO111MODULE=auto
|
ENV GO111MODULE=auto
|
||||||
|
|
||||||
RUN CGO_ENABLED=0 GOOS=linux go build -o netclient main.go
|
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 /usr/local/go/bin/go build -ldflags="-w -s" -o netclient-app netclient/main.go
|
||||||
|
|
||||||
#second stage
|
FROM alpine:3.13.6
|
||||||
|
|
||||||
FROM debian:latest
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get -y install systemd procps
|
|
||||||
|
|
||||||
|
RUN apk add gcompat iptables && mkdir -p /etc/netclient
|
||||||
|
# set the working directory
|
||||||
WORKDIR /root/
|
WORKDIR /root/
|
||||||
|
|
||||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
COPY --from=builder /app/netclient-app /etc/netclient/netclient
|
||||||
|
COPY --from=builder /app/scripts/netclient.sh .
|
||||||
|
|
||||||
COPY --from=builder /app/netclient/netclient .
|
RUN chmod 0755 /etc/netclient/netclient && chmod 0755 netclient.sh
|
||||||
|
|
||||||
CMD ["./netclient"]
|
|
||||||
|
|
||||||
|
ENTRYPOINT ["./netclient.sh"]
|
||||||
|
|
26
docker/Dockerfile-netclient-full
Normal file
26
docker/Dockerfile-netclient-full
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#first stage - builder
|
||||||
|
|
||||||
|
FROM golang:latest as builder
|
||||||
|
|
||||||
|
COPY . /app
|
||||||
|
|
||||||
|
WORKDIR /app/netclient
|
||||||
|
|
||||||
|
ENV GO111MODULE=auto
|
||||||
|
|
||||||
|
RUN CGO_ENABLED=0 GOOS=linux go build -o netclient main.go
|
||||||
|
|
||||||
|
#second stage
|
||||||
|
|
||||||
|
FROM debian:latest
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get -y install systemd procps
|
||||||
|
|
||||||
|
WORKDIR /root/
|
||||||
|
|
||||||
|
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||||
|
|
||||||
|
COPY --from=builder /app/netclient/netclient .
|
||||||
|
|
||||||
|
CMD ["./netclient"]
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
FROM gravitl/builder:latest as builder
|
|
||||||
# add glib support daemon manager
|
|
||||||
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 alpine:3.13.6
|
|
||||||
|
|
||||||
RUN apk add gcompat iptables && mkdir -p /etc/netclient
|
|
||||||
# set the working directory
|
|
||||||
WORKDIR /root/
|
|
||||||
|
|
||||||
COPY --from=builder /app/netclient-app /etc/netclient/netclient
|
|
||||||
COPY --from=builder /app/scripts/netclient.sh .
|
|
||||||
|
|
||||||
RUN chmod 0755 /etc/netclient/netclient && chmod 0755 netclient.sh
|
|
||||||
|
|
||||||
ENTRYPOINT ["./netclient.sh"]
|
|
|
@ -1,26 +0,0 @@
|
||||||
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"]
|
|
|
@ -3,9 +3,10 @@ package command
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"strconv"
|
|
||||||
nodepb "github.com/gravitl/netmaker/grpc"
|
nodepb "github.com/gravitl/netmaker/grpc"
|
||||||
"github.com/gravitl/netmaker/netclient/config"
|
"github.com/gravitl/netmaker/netclient/config"
|
||||||
"github.com/gravitl/netmaker/netclient/daemon"
|
"github.com/gravitl/netmaker/netclient/daemon"
|
||||||
|
@ -67,14 +68,14 @@ func getWindowsInterval() int {
|
||||||
return interval
|
return interval
|
||||||
}
|
}
|
||||||
netint, err := strconv.Atoi(cfg.Server.CheckinInterval)
|
netint, err := strconv.Atoi(cfg.Server.CheckinInterval)
|
||||||
if err == nil && netint != 0 {
|
if err == nil && netint != 0 {
|
||||||
interval = netint
|
interval = netint
|
||||||
}
|
}
|
||||||
return interval
|
return interval
|
||||||
}
|
}
|
||||||
|
|
||||||
func RunUserspaceDaemon() {
|
func RunUserspaceDaemon() {
|
||||||
|
|
||||||
cfg := config.ClientConfig{
|
cfg := config.ClientConfig{
|
||||||
Network: "all",
|
Network: "all",
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,7 +101,7 @@ func InitServerNetclient() error {
|
||||||
if os.IsNotExist(err) {
|
if os.IsNotExist(err) {
|
||||||
os.MkdirAll(netclientDir+"/config", 744)
|
os.MkdirAll(netclientDir+"/config", 744)
|
||||||
} else if err != nil {
|
} else if err != nil {
|
||||||
log.Println("could not find or create", netclientDir)
|
log.Println("[netmaker] could not find or create", netclientDir)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -119,14 +119,14 @@ func HandleContainedClient() error {
|
||||||
log.SetFlags(log.Flags() &^ (log.Llongfile | log.Lshortfile))
|
log.SetFlags(log.Flags() &^ (log.Llongfile | log.Lshortfile))
|
||||||
err := SyncNetworks(servernets)
|
err := SyncNetworks(servernets)
|
||||||
if err != nil && servercfg.GetVerbose() >= 1 {
|
if err != nil && servercfg.GetVerbose() >= 1 {
|
||||||
log.Printf("[server netclient] error syncing networks %s \n", err)
|
log.Printf("[netmaker] error syncing networks %s \n", err)
|
||||||
}
|
}
|
||||||
err = nccommand.CheckIn(config.ClientConfig{Network: "all"})
|
err = nccommand.CheckIn(config.ClientConfig{Network: "all"})
|
||||||
if err != nil && servercfg.GetVerbose() >= 1 {
|
if err != nil && servercfg.GetVerbose() >= 1 {
|
||||||
log.Printf("[server netclient] error occurred %s \n", err)
|
log.Printf("[netmaker] error occurred %s \n", err)
|
||||||
}
|
}
|
||||||
if servercfg.GetVerbose() >= 3 {
|
if servercfg.GetVerbose() >= 3 {
|
||||||
log.Println("[server netclient]", "completed a checkin call")
|
log.Println("[netmaker]", "completed a checkin call")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -152,7 +152,9 @@ func SyncNetworks(servernets []models.Network) error {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = errors.New("network add failed for " + servernet.NetID)
|
err = errors.New("network add failed for " + servernet.NetID)
|
||||||
}
|
}
|
||||||
log.Printf("[server] error adding network %s during sync %s \n", servernet.NetID, err)
|
if servercfg.GetVerbose() >= 1 {
|
||||||
|
log.Printf("[netmaker] error adding network %s during sync %s \n", servernet.NetID, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -170,7 +172,7 @@ func SyncNetworks(servernets []models.Network) error {
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = errors.New("network delete failed for " + localnet)
|
err = errors.New("network delete failed for " + localnet)
|
||||||
}
|
}
|
||||||
log.Printf("[server] error removing network %s during sync %s \n", localnet, err)
|
log.Printf("[netmaker] error removing network %s during sync %s \n", localnet, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -184,9 +186,10 @@ func AddNetwork(network string) (bool, error) {
|
||||||
Node: models.Node{
|
Node: models.Node{
|
||||||
Network: network,
|
Network: network,
|
||||||
IsServer: "yes",
|
IsServer: "yes",
|
||||||
|
DNSOn: "no",
|
||||||
Name: models.NODE_SERVER_NAME,
|
Name: models.NODE_SERVER_NAME,
|
||||||
},
|
},
|
||||||
}, "")
|
}, "")
|
||||||
log.Println("Server added to network " + network)
|
log.Println("[netmaker] Server added to network " + network)
|
||||||
return true, err
|
return true, err
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue