From 827d5289bc07f4e05279e6724aa32bc196e4f249 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20G=C4=85sior?= <60886162+adriang-90@users.noreply.github.com> Date: Wed, 21 Sep 2022 15:09:11 +0200 Subject: [PATCH] Refactor: improve Dockerfile (#2246) --- Dockerfile | 20 ++++++++++++-------- Makefile | 3 --- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6e67d5d4..954ede77 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,18 +1,22 @@ -FROM golang:alpine as builder +FROM --platform=${BUILDPLATFORM} golang:alpine as builder -RUN apk add --no-cache make git && \ +RUN apk add --no-cache make git ca-certificates tzdata && \ wget -O /Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb -WORKDIR /clash-src +WORKDIR /workdir COPY --from=tonistiigi/xx:golang / / -COPY . /clash-src -RUN go mod download && \ - make docker && \ - mv ./bin/clash-docker /clash +ARG TARGETOS TARGETARCH TARGETVARIANT + +RUN --mount=target=. \ + --mount=type=cache,target=/root/.cache/go-build \ + --mount=type=cache,target=/go/pkg/mod \ + make BINDIR= ${TARGETOS}-${TARGETARCH}${TARGETVARIANT} && \ + mv /clash* /clash FROM alpine:latest LABEL org.opencontainers.image.source="https://github.com/Dreamacro/clash" -RUN apk add --no-cache ca-certificates tzdata +COPY --from=builder /usr/share/zoneinfo /usr/share/zoneinfo +COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ COPY --from=builder /Country.mmdb /root/.config/clash/ COPY --from=builder /clash / ENTRYPOINT ["/clash"] diff --git a/Makefile b/Makefile index 36d7b3a2..a9291a47 100644 --- a/Makefile +++ b/Makefile @@ -37,9 +37,6 @@ WINDOWS_ARCH_LIST = \ all: linux-amd64 darwin-amd64 windows-amd64 # Most used -docker: - $(GOBUILD) -o $(BINDIR)/$(NAME)-$@ - darwin-amd64: GOARCH=amd64 GOOS=darwin $(GOBUILD) -o $(BINDIR)/$(NAME)-$@