2019-06-30 15:10:56 +08:00
|
|
|
FROM golang:alpine as builder
|
2018-10-23 04:44:11 +08:00
|
|
|
|
2022-04-06 02:52:25 +08:00
|
|
|
ARG TARGETOS
|
|
|
|
ARG TARGETARCH
|
|
|
|
|
2019-06-30 15:10:56 +08:00
|
|
|
RUN apk add --no-cache make git && \
|
2022-04-06 02:52:25 +08:00
|
|
|
mkdir /clash-config && \
|
|
|
|
wget -O /clash-config/Country.mmdb https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb && \
|
|
|
|
wget -O /clash-config/geosite.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat && \
|
|
|
|
wget -O /clash-config/geoip.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat
|
|
|
|
|
2018-10-01 19:38:54 +08:00
|
|
|
WORKDIR /clash-src
|
|
|
|
COPY . /clash-src
|
2022-04-06 02:52:25 +08:00
|
|
|
RUN go mod download
|
|
|
|
RUN /bin/ash -c 'set -ex && \
|
|
|
|
if [ "$TARGETARCH" == "amd64" ]; then \
|
|
|
|
GOOS=$TARGETOS GOARCH=$TARGETARCH GOAMD64=v1 make docker && \
|
|
|
|
mv ./bin/Clash.Meta-docker ./bin/clash-amd64v1 && \
|
|
|
|
GOOS=$TARGETOS GOARCH=$TARGETARCH GOAMD64=v2 make docker && \
|
|
|
|
mv ./bin/Clash.Meta-docker ./bin/clash-amd64v2 && \
|
|
|
|
GOOS=$TARGETOS GOARCH=$TARGETARCH GOAMD64=v3 make docker && \
|
|
|
|
mv ./bin/Clash.Meta-docker ./bin/clash-amd64v3 && \
|
|
|
|
ln -s clash-amd64v3 ./bin/clash-amd64v4 && \
|
|
|
|
mv check_amd64.sh ./bin/ && \
|
|
|
|
printf "#!/bin/sh\\nsh ./check_amd64.sh\\nexec ./clash-amd64v\$? \$@" > ./bin/clash && \
|
|
|
|
chmod +x ./bin/check_amd64.sh ./bin/clash; \
|
|
|
|
else \
|
|
|
|
GOOS=$TARGETOS GOARCH=$TARGETARCH make docker && \
|
|
|
|
mv ./bin/Clash.Meta-docker ./bin/clash; \
|
|
|
|
fi'
|
2018-06-17 08:18:39 +08:00
|
|
|
FROM alpine:latest
|
2022-04-06 02:52:25 +08:00
|
|
|
LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/Clash.Meta"
|
2018-10-23 04:44:11 +08:00
|
|
|
|
2022-03-15 11:30:52 +08:00
|
|
|
RUN apk add --no-cache ca-certificates tzdata
|
2022-04-06 02:52:25 +08:00
|
|
|
|
|
|
|
VOLUME ["/root/.config/clash/"]
|
|
|
|
EXPOSE 7890/tcp
|
|
|
|
|
|
|
|
COPY --from=builder /clash-config/ /root/.config/clash/
|
|
|
|
COPY --from=builder /clash-src/bin/ /
|
|
|
|
ENTRYPOINT [ "/clash" ]
|