Refactor: improve Dockerfile (#2246)

This commit is contained in:
Adrian Gąsior 2022-09-21 15:09:11 +02:00 committed by GitHub
parent 6995e98181
commit 827d5289bc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 11 deletions

View File

@ -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 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 --from=tonistiigi/xx:golang / /
COPY . /clash-src ARG TARGETOS TARGETARCH TARGETVARIANT
RUN go mod download && \
make docker && \ RUN --mount=target=. \
mv ./bin/clash-docker /clash --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 FROM alpine:latest
LABEL org.opencontainers.image.source="https://github.com/Dreamacro/clash" 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 /Country.mmdb /root/.config/clash/
COPY --from=builder /clash / COPY --from=builder /clash /
ENTRYPOINT ["/clash"] ENTRYPOINT ["/clash"]

View File

@ -37,9 +37,6 @@ WINDOWS_ARCH_LIST = \
all: linux-amd64 darwin-amd64 windows-amd64 # Most used all: linux-amd64 darwin-amd64 windows-amd64 # Most used
docker:
$(GOBUILD) -o $(BINDIR)/$(NAME)-$@
darwin-amd64: darwin-amd64:
GOARCH=amd64 GOOS=darwin $(GOBUILD) -o $(BINDIR)/$(NAME)-$@ GOARCH=amd64 GOOS=darwin $(GOBUILD) -o $(BINDIR)/$(NAME)-$@