Dockerfile 1.1 KB

123456789101112131415161718192021222324252627
  1. FROM --platform=$BUILDPLATFORM golang:1.21-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. && go build -v -trimpath -tags \
  16. "with_gvisor,with_quic,with_dhcp,with_wireguard,with_ech,with_utls,with_reality_server,with_acme,with_clash_api" \
  17. -o /go/bin/sing-box \
  18. -ldflags "-X \"github.com/sagernet/sing-box/constant.Version=$VERSION\" -s -w -buildid=" \
  19. ./cmd/sing-box
  20. FROM --platform=$TARGETPLATFORM alpine AS dist
  21. LABEL maintainer="nekohasekai <[email protected]>"
  22. RUN set -ex \
  23. && apk upgrade \
  24. && apk add bash tzdata ca-certificates \
  25. && rm -rf /var/cache/apk/*
  26. COPY --from=builder /go/bin/sing-box /usr/local/bin/sing-box
  27. ENTRYPOINT ["sing-box"]