Dockerfile 1.1 KB

1234567891011121314151617181920212223242526
  1. FROM --platform=$BUILDPLATFORM golang:1.25-alpine AS builder
  2. LABEL maintainer="nekohasekai <[email protected]>"
  3. COPY . /go/src/github.com/sagernet/sing-box
  4. WORKDIR /go/src/github.com/sagernet/sing-box
  5. ARG TARGETOS TARGETARCH
  6. ARG GOPROXY=""
  7. ENV GOPROXY ${GOPROXY}
  8. ENV CGO_ENABLED=0
  9. ENV GOOS=$TARGETOS
  10. ENV GOARCH=$TARGETARCH
  11. RUN set -ex \
  12. && apk add git build-base \
  13. && export COMMIT=$(git rev-parse --short HEAD) \
  14. && export VERSION=$(go run ./cmd/internal/read_tag) \
  15. && export TAGS=$(cat release/DEFAULT_BUILD_TAGS_OTHERS) \
  16. && export LDFLAGS_SHARED=$(cat release/LDFLAGS) \
  17. && go build -v -trimpath -tags "$TAGS" \
  18. -o /go/bin/sing-box \
  19. -ldflags "-X \"github.com/sagernet/sing-box/constant.Version=$VERSION\" $LDFLAGS_SHARED -s -w -buildid=" \
  20. ./cmd/sing-box
  21. FROM --platform=$TARGETPLATFORM alpine AS dist
  22. LABEL maintainer="nekohasekai <[email protected]>"
  23. RUN set -ex \
  24. && apk add --no-cache --upgrade bash tzdata ca-certificates nftables
  25. COPY --from=builder /go/bin/sing-box /usr/local/bin/sing-box
  26. ENTRYPOINT ["sing-box"]