From 8438cade99ff8b2a9b872423fb6c4b16e1b4063b Mon Sep 17 00:00:00 2001 From: Skyxim Date: Sun, 1 May 2022 21:22:41 +0800 Subject: [PATCH] chore: docker --- .github/workflows/docker.yaml | 9 ++++++++- Dockerfile | 29 ++++++++--------------------- Makefile | 2 +- 3 files changed, 17 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index ad930bd0..a4106dc1 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -1,6 +1,11 @@ name: Docker -on: [push] +on: + push: + branches: + - Beta + tags: + - "v*" env: REGISTRY: docker.io @@ -23,6 +28,8 @@ jobs: - name: Setup Docker buildx uses: docker/setup-buildx-action@v1 + with: + version: latest # Extract metadata (tags, labels) for Docker # https://github.com/docker/metadata-action diff --git a/Dockerfile b/Dockerfile index 498fbd44..95cb9eaa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,35 +7,22 @@ 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 + 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' +WORKDIR /clash-src +RUN go mod download &&\ + make docker &&\ + mv ./bin/Clash.Meta-docker /clash + FROM alpine:latest LABEL org.opencontainers.image.source="https://github.com/MetaCubeX/Clash.Meta" RUN apk add --no-cache ca-certificates tzdata VOLUME ["/root/.config/clash/"] -EXPOSE 7890/tcp COPY --from=builder /clash-config/ /root/.config/clash/ -COPY --from=builder /clash-src/bin/ / +COPY --from=builder /clash /clash +RUN chmod +x /clash ENTRYPOINT [ "/clash" ] \ No newline at end of file diff --git a/Makefile b/Makefile index c221ea79..82a05b8c 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ all:linux-amd64 linux-arm64\ windows-amd64 windows-arm64\ docker: - $(GOBUILD) -o $(BINDIR)/$(NAME)-$@ + GOAMD64=v3 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@ darwin-amd64v3: GOARCH=amd64 GOOS=darwin GOAMD64=v3 $(GOBUILD) -o $(BINDIR)/$(NAME)-$@