Last active
November 11, 2025 17:50
-
-
Save mnixry/f222e5a2fdba7c02ef3e4073ae2ee520 to your computer and use it in GitHub Desktop.
A more ergonomic AnyLink (https://github.com/bjdgyc/anylink) build Dockerfile.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| FROM golang:trixie AS fetch-src | |
| ARG GIT_BRANCH=main | |
| RUN git clone https://github.com/bjdgyc/anylink.git -b $GIT_BRANCH /src | |
| FROM node:16-alpine AS web-builder | |
| WORKDIR /web | |
| COPY --from=fetch-src /src/web/package.json /src/web/yarn.lock /web/ | |
| RUN yarn install | |
| COPY --from=fetch-src /src/web/ /web/ | |
| RUN yarn run build | |
| FROM fetch-src AS server-builder | |
| ENV CGO_ENABLED=1 | |
| WORKDIR /src/server | |
| COPY --from=web-builder /web/ui /src/server/ui | |
| RUN --mount=type=cache,id=go-build,target=/root/.cache/go-build \ | |
| export APP_VER=$(cat /src/version) && \ | |
| export COMMIT_ID=$(git rev-parse HEAD) && \ | |
| export BUILD_DATE=$(date -Iseconds) && \ | |
| go mod tidy && \ | |
| go build -v -o anylink -trimpath -ldflags "-s -w -X main.appVer=$APP_VER -X main.commitId=$COMMIT_ID -X main.buildDate=$BUILD_DATE -extldflags \"-static\"" | |
| FROM debian:trixie-slim AS runner | |
| ENV TZ=Asia/Shanghai \ | |
| ANYLINK_IN_CONTAINER="on" \ | |
| IPTABLES_LEGACY="off" | |
| RUN apt-get update && \ | |
| apt-get install -y iproute2 bridge-utils iptables dnsmasq tini tzdata && \ | |
| apt-get clean && \ | |
| rm -rf /var/lib/apt/lists/* | |
| WORKDIR /app | |
| COPY --from=fetch-src /src/deploy /app/deploy | |
| COPY --from=fetch-src /src/index_template /app/index_template | |
| COPY --from=fetch-src /src/server/conf /app/conf | |
| COPY --from=fetch-src /src/server/bridge-init.sh /src/README.md /src/LICENSE /src/version_info /app/ | |
| COPY --from=server-builder /src/server/anylink /app/ | |
| RUN mkdir -p /app/log | |
| ENTRYPOINT ["/usr/bin/tini", "--", "/app/anylink"] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment