mirror of
https://github.com/SagerNet/sing-box.git
synced 2026-04-11 17:47:20 +10:00
Move hardcoded build tags and ldflags from Makefile, Dockerfile, CI workflows, and local build scripts into canonical files under release/: - release/DEFAULT_BUILD_TAGS (Linux common archs, Darwin, Android) - release/DEFAULT_BUILD_TAGS_WINDOWS (includes with_purego) - release/DEFAULT_BUILD_TAGS_OTHERS (no with_naive_outbound) - release/LDFLAGS (shared linker flags)
27 lines
1.1 KiB
Docker
27 lines
1.1 KiB
Docker
FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS builder
|
|
LABEL maintainer="nekohasekai <contact-git@sekai.icu>"
|
|
COPY . /go/src/github.com/sagernet/sing-box
|
|
WORKDIR /go/src/github.com/sagernet/sing-box
|
|
ARG TARGETOS TARGETARCH
|
|
ARG GOPROXY=""
|
|
ENV GOPROXY ${GOPROXY}
|
|
ENV CGO_ENABLED=0
|
|
ENV GOOS=$TARGETOS
|
|
ENV GOARCH=$TARGETARCH
|
|
RUN set -ex \
|
|
&& apk add git build-base \
|
|
&& export COMMIT=$(git rev-parse --short HEAD) \
|
|
&& export VERSION=$(go run ./cmd/internal/read_tag) \
|
|
&& export TAGS=$(cat release/DEFAULT_BUILD_TAGS_OTHERS) \
|
|
&& export LDFLAGS_SHARED=$(cat release/LDFLAGS) \
|
|
&& go build -v -trimpath -tags "$TAGS" \
|
|
-o /go/bin/sing-box \
|
|
-ldflags "-X \"github.com/sagernet/sing-box/constant.Version=$VERSION\" $LDFLAGS_SHARED -s -w -buildid=" \
|
|
./cmd/sing-box
|
|
FROM --platform=$TARGETPLATFORM alpine AS dist
|
|
LABEL maintainer="nekohasekai <contact-git@sekai.icu>"
|
|
RUN set -ex \
|
|
&& apk add --no-cache --upgrade bash tzdata ca-certificates nftables
|
|
COPY --from=builder /go/bin/sing-box /usr/local/bin/sing-box
|
|
ENTRYPOINT ["sing-box"]
|