feat: 11notes/go as build image
This commit is contained in:
@@ -4,7 +4,9 @@
|
|||||||
# GLOBAL
|
# GLOBAL
|
||||||
ARG APP_UID=1000 \
|
ARG APP_UID=1000 \
|
||||||
APP_GID=1000 \
|
APP_GID=1000 \
|
||||||
BUILD_ROOT="/go/netbird/management /go/netbird/relay /go/netbird/signal"
|
BUILD_SRC=https://github.com/netbirdio/netbird.git \
|
||||||
|
BUILD_ROOT="/go/netbird/management /go/netbird/relay /go/netbird/signal" \
|
||||||
|
GO_VERSION=1.24
|
||||||
|
|
||||||
# :: FOREIGN IMAGES
|
# :: FOREIGN IMAGES
|
||||||
FROM 11notes/nginx:stable AS distroless-nginx
|
FROM 11notes/nginx:stable AS distroless-nginx
|
||||||
@@ -15,77 +17,51 @@
|
|||||||
# ║ BUILD ║
|
# ║ BUILD ║
|
||||||
# ╚═════════════════════════════════════════════════════╝
|
# ╚═════════════════════════════════════════════════════╝
|
||||||
# :: netbird
|
# :: netbird
|
||||||
FROM golang:1.24-alpine AS build
|
FROM 11notes/go:${GO_VERSION} AS build
|
||||||
COPY --from=util /usr/local/bin /usr/local/bin
|
|
||||||
ARG APP_VERSION \
|
ARG APP_VERSION \
|
||||||
BUILD_ROOT \
|
BUILD_SRC \
|
||||||
BUILD_BIN
|
BUILD_ROOT
|
||||||
|
|
||||||
ENV CGO_ENABLED=0
|
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
apk --update --no-cache add \
|
git clone ${BUILD_SRC} -b v${APP_VERSION}; \
|
||||||
build-base \
|
sed -i 's/"development"/"v'${APP_VERSION}'"/' /go/netbird/version/version.go;
|
||||||
upx \
|
|
||||||
git;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
git clone https://github.com/netbirdio/netbird -b v${APP_VERSION};
|
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
mkdir -p /distroless/usr/local/bin; \
|
|
||||||
for BUILD in ${BUILD_ROOT}; do \
|
for BUILD in ${BUILD_ROOT}; do \
|
||||||
cd ${BUILD}; \
|
cd ${BUILD}; \
|
||||||
BIN="${BUILD}/$(echo ${BUILD} | awk -F '/' '{print $4}')"; \
|
BUILD_BIN="${BUILD}/$(echo ${BUILD} | awk -F '/' '{print $4}')"; \
|
||||||
go build -ldflags="-extldflags=-static" -o ${BIN} main.go; \
|
go mod tidy; \
|
||||||
eleven checkStatic ${BIN}; \
|
eleven go build ${BUILD_BIN} main.go; \
|
||||||
eleven strip ${BIN}; \
|
eleven distroless ${BUILD_BIN}; \
|
||||||
cp ${BIN} /distroless/usr/local/bin; \
|
|
||||||
done; \
|
done; \
|
||||||
mv /distroless/usr/local/bin/management /distroless/usr/local/bin/netbird;
|
mv /distroless/usr/local/bin/management /distroless/usr/local/bin/netbird;
|
||||||
|
|
||||||
# :: management
|
# :: management
|
||||||
FROM golang:1.24-alpine AS management
|
FROM 11notes/go:${GO_VERSION} AS management
|
||||||
COPY --from=util /usr/local/bin /usr/local/bin
|
|
||||||
COPY ./build/go/management /go/management
|
COPY ./build/go/management /go/management
|
||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
ARG BIN=/go/management/management
|
ARG BUILD_BIN=/go/management/management
|
||||||
|
|
||||||
RUN set -ex; \
|
|
||||||
apk --update --no-cache add \
|
|
||||||
build-base \
|
|
||||||
upx;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
cd /go/management; \
|
cd /go/management; \
|
||||||
go build -ldflags="-extldflags=-static" -o ${BIN} main.go; \
|
eleven go build ${BUILD_BIN} main.go; \
|
||||||
mkdir -p /distroless/usr/local/bin; \
|
eleven distroless ${BUILD_BIN};
|
||||||
eleven checkStatic ${BIN}; \
|
|
||||||
eleven strip ${BIN}; \
|
|
||||||
cp ${BIN} /distroless/usr/local/bin;
|
|
||||||
|
|
||||||
# :: dashboard
|
# :: dashboard
|
||||||
FROM golang:1.24-alpine AS dashboard
|
FROM 11notes/go:${GO_VERSION} AS dashboard
|
||||||
COPY --from=util /usr/local/bin /usr/local/bin
|
|
||||||
COPY ./build/go/dashboard /go/dashboard
|
COPY ./build/go/dashboard /go/dashboard
|
||||||
ENV CGO_ENABLED=0
|
ENV CGO_ENABLED=0
|
||||||
ARG BIN=/go/dashboard/dashboard
|
ARG BUILD_BIN=/go/dashboard/dashboard
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
apk --update --no-cache add \
|
apk --update --no-cache add \
|
||||||
build-base \
|
|
||||||
upx \
|
|
||||||
git \
|
|
||||||
nodejs \
|
nodejs \
|
||||||
npm;
|
npm;
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
cd /go/dashboard; \
|
cd /go/dashboard; \
|
||||||
go build -ldflags="-extldflags=-static" -o ${BIN} main.go; \
|
eleven go build ${BUILD_BIN} main.go; \
|
||||||
mkdir -p /distroless/usr/local/bin; \
|
eleven distroless ${BUILD_BIN};
|
||||||
eleven checkStatic ${BIN}; \
|
|
||||||
eleven strip ${BIN}; \
|
|
||||||
cp ${BIN} /distroless/usr/local/bin;
|
|
||||||
|
|
||||||
RUN set -ex; \
|
RUN set -ex; \
|
||||||
git clone https://github.com/netbirdio/dashboard /dashboard;
|
git clone https://github.com/netbirdio/dashboard /dashboard;
|
||||||
@@ -100,7 +76,7 @@
|
|||||||
|
|
||||||
# :: file system
|
# :: file system
|
||||||
FROM alpine AS file-system
|
FROM alpine AS file-system
|
||||||
COPY --from=util /usr/local/bin /usr/local/bin
|
COPY --from=util / /
|
||||||
ARG APP_ROOT
|
ARG APP_ROOT
|
||||||
USER root
|
USER root
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user