chore: add docker workflow
This commit is contained in:
47
Dockerfile
47
Dockerfile
@ -1,18 +1,41 @@
|
||||
FROM golang:alpine as builder
|
||||
|
||||
RUN apk add --no-cache make git && \
|
||||
wget -O /Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb
|
||||
WORKDIR /clash-src
|
||||
COPY --from=tonistiigi/xx:golang / /
|
||||
COPY . /clash-src
|
||||
RUN go mod download && \
|
||||
make docker && \
|
||||
mv ./bin/clash-docker /clash
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
|
||||
RUN apk add --no-cache make git && \
|
||||
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
|
||||
|
||||
WORKDIR /clash-src
|
||||
COPY . /clash-src
|
||||
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'
|
||||
FROM alpine:latest
|
||||
LABEL org.opencontainers.image.source="https://github.com/Dreamacro/clash"
|
||||
LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/Clash.Meta"
|
||||
|
||||
RUN apk add --no-cache ca-certificates tzdata
|
||||
COPY --from=builder /Country.mmdb /root/.config/clash/
|
||||
COPY --from=builder /clash /
|
||||
ENTRYPOINT ["/clash"]
|
||||
|
||||
VOLUME ["/root/.config/clash/"]
|
||||
EXPOSE 7890/tcp
|
||||
|
||||
COPY --from=builder /clash-config/ /root/.config/clash/
|
||||
COPY --from=builder /clash-src/bin/ /
|
||||
ENTRYPOINT [ "/clash" ]
|
Reference in New Issue
Block a user