Skip to content
Snippets Groups Projects
Commit b67ff905 authored by Neil-Jocelyn Schark's avatar Neil-Jocelyn Schark
Browse files

Build statically linked binaries wherever possible

See merge request !932
parent cd64b3ea
No related branches found
No related tags found
1 merge request!932Build statically linked binaries wherever possible
Pipeline #211143 failed
......@@ -9,7 +9,7 @@ GOBIN := $(GOSDN_PRG)
SCRIPTS_DIR := /scripts
MAKEFILE_SUBDIR := ./makefiles
GOCMD=go
GOCMD=CGO_ENABLED=0 go
GOBUILD=$(GOCMD) build
GOCLEAN=$(GOCMD) clean -cache -fuzzcache -testcache -modcache
BUILD_ARTIFACTS_PATH=artifacts
......
......@@ -6,18 +6,11 @@ FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-bookworm AS builder
WORKDIR /gosdn
COPY go.* ./
RUN go mod download
COPY ./models/generated/openconfig ./models/generated/openconfig
COPY ./api ./api
COPY ./controller ./controller
COPY applications/venv-manager/ applications/venv-manager/
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o venv-manager applications/venv-manager/main.go
COPY . .
RUN make build-venv-manager
FROM ${GITLAB_PROXY}ubuntu:22.04
COPY --from=builder /gosdn/venv-manager /venv-manager
COPY --from=builder /gosdn/artifacts/venv-manager /venv-manager
ENTRYPOINT ["/venv-manager"]
......@@ -12,7 +12,7 @@ COPY go.sum .
RUN go mod download
COPY . .
RUN --mount=type=cache,target=/root/.cache/go-build \
GOOS=linux go build -o gosdn ./cmd/gosdn
GOOS=linux CGO_ENABLED=0 go build -o gosdn ./cmd/gosdn
# Get Delve from a GOPATH not from a Go Modules project
WORKDIR /go/src/
......
......@@ -11,7 +11,7 @@ RUN go mod download
FROM installer as builder
COPY . .
RUN --mount=type=cache,target=/root/.cache/go-build \
GOOS=linux go build -o executor ./cmd/executor/executor.go
GOOS=linux CGO_ENABLED=0 go build -o executor ./cmd/executor/executor.go
FROM alpine
COPY --from=builder /build/executor .
......
......@@ -11,7 +11,7 @@ COPY go.sum .
FROM installer AS builder
RUN go mod tidy
COPY . .
RUN GOOS=linux go build -o csbi
RUN CGO_ENABLED=0 GOOS=linux go build -o csbi
FROM alpine
COPY --from=builder /src/csbi/csbi .
......
......@@ -13,13 +13,13 @@ build-gosdn: pre
$(GOBUILD) -trimpath -o $(BUILD_ARTIFACTS_PATH)/gosdn ./controller/cmd/gosdn
build-gosdnc: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/gosdnc ./cli/
$(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/gosdnc ./cli/
build-orchestrator: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/orchestrator ./csbi/cmd/csbi/
$(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/orchestrator ./csbi/cmd/csbi/
build-plugin-registry: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/plugin-registry ./plugin-registry/
$(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/plugin-registry ./plugin-registry/
build-venv-manager: pre
$(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/venv-manager ./applications/venv-manager
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment