Clash.Meta/Dockerfile

41 lines
1.6 KiB
Docker
Raw Normal View History

2019-06-30 15:10:56 +08:00
FROM golang:alpine as builder
2018-10-23 04:44:11 +08:00
2022-04-28 14:11:35 +08:00
ARG TARGETOS
ARG TARGETARCH
2019-06-30 15:10:56 +08:00
RUN apk add --no-cache make git && \
2022-04-28 14:11:35 +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-28 14:11:35 +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-28 14:11:35 +08:00
LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/Clash.Meta"
2018-10-23 04:44:11 +08:00
RUN apk add --no-cache ca-certificates tzdata
2022-04-28 14:11:35 +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" ]