|
1 | | -ARG BUILD_FROM |
2 | | - |
3 | | -FROM --platform=amd64 golang:1.15-alpine3.13 AS builder |
4 | | - |
5 | | -WORKDIR /usr/src |
6 | | -ARG BUILD_ARCH |
7 | | -ARG COREDNS_VERSION |
8 | | - |
9 | | -# Build CoreDNS |
10 | | -COPY plugins plugins |
11 | | -RUN \ |
12 | | - set -x \ |
13 | | - && apk add --no-cache \ |
14 | | - git \ |
15 | | - make \ |
16 | | - bash \ |
17 | | - && git clone --depth 1 -b v${COREDNS_VERSION} https://github.com/coredns/coredns \ |
18 | | - && cp -rf plugins/* coredns/plugin/ \ |
19 | | - && cd coredns \ |
20 | | - && sed -i "/^template:template/d" plugin.cfg \ |
21 | | - && sed -i "/^hosts:.*/a template:template" plugin.cfg \ |
22 | | - && sed -i "/^forward:.*/i fallback:fallback" plugin.cfg \ |
23 | | - && sed -i "/^hosts:.*/a mdns:mdns" plugin.cfg \ |
24 | | - && sed -i "/route53:route53/d" plugin.cfg \ |
25 | | - && sed -i "/clouddns:clouddns/d" plugin.cfg \ |
26 | | - && sed -i "/k8s_external:k8s_external/d" plugin.cfg \ |
27 | | - && sed -i "/kubernetes:kubernetes/d" plugin.cfg \ |
28 | | - && sed -i "/etcd:etcd/d" plugin.cfg \ |
29 | | - && sed -i "/grpc:grpc/d" plugin.cfg \ |
30 | | - && go generate \ |
31 | | - && \ |
32 | | - if [ "${BUILD_ARCH}" = "armhf" ]; then \ |
33 | | - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=6 GOARCH=arm"; \ |
34 | | - elif [ "${BUILD_ARCH}" = "armv7" ]; then \ |
35 | | - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=7 GOARCH=arm"; \ |
36 | | - elif [ "${BUILD_ARCH}" = "aarch64" ]; then \ |
37 | | - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=arm64"; \ |
38 | | - elif [ "${BUILD_ARCH}" = "i386" ]; then \ |
39 | | - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=386"; \ |
40 | | - elif [ "${BUILD_ARCH}" = "amd64" ]; then \ |
41 | | - make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=amd64"; \ |
42 | | - else \ |
43 | | - exit 1; \ |
44 | | - fi |
45 | | - |
46 | | -FROM ${BUILD_FROM} |
47 | | - |
48 | | -WORKDIR /config |
49 | | -COPY --from=builder /usr/src/coredns/coredns /usr/bin/coredns |
50 | | -COPY rootfs / |
| 1 | +ARG BUILD_FROM |
| 2 | + |
| 3 | +FROM --platform=amd64 golang:1.22-alpine3.19 AS builder |
| 4 | + |
| 5 | +WORKDIR /usr/src |
| 6 | +ARG BUILD_ARCH |
| 7 | +ARG COREDNS_VERSION |
| 8 | + |
| 9 | +# Build CoreDNS |
| 10 | +COPY plugins plugins |
| 11 | +RUN \ |
| 12 | + set -x \ |
| 13 | + && apk add --no-cache \ |
| 14 | + git \ |
| 15 | + make \ |
| 16 | + bash \ |
| 17 | + && git clone --depth 1 -b v${COREDNS_VERSION} https://github.com/coredns/coredns \ |
| 18 | + && cp -rf plugins/* coredns/plugin/ \ |
| 19 | + && cd coredns \ |
| 20 | + && sed -i "/^template:template/d" plugin.cfg \ |
| 21 | + && sed -i "/^hosts:.*/a template:template" plugin.cfg \ |
| 22 | + && sed -i "/^forward:.*/i fallback:fallback" plugin.cfg \ |
| 23 | + && sed -i "/^hosts:.*/a mdns:mdns" plugin.cfg \ |
| 24 | + && sed -i "/route53:route53/d" plugin.cfg \ |
| 25 | + && sed -i "/clouddns:clouddns/d" plugin.cfg \ |
| 26 | + && sed -i "/k8s_external:k8s_external/d" plugin.cfg \ |
| 27 | + && sed -i "/kubernetes:kubernetes/d" plugin.cfg \ |
| 28 | + && sed -i "/etcd:etcd/d" plugin.cfg \ |
| 29 | + && sed -i "/grpc:grpc/d" plugin.cfg \ |
| 30 | + && go mod tidy \ |
| 31 | + && go generate \ |
| 32 | + && \ |
| 33 | + if [ "${BUILD_ARCH}" = "armhf" ]; then \ |
| 34 | + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=6 GOARCH=arm"; \ |
| 35 | + elif [ "${BUILD_ARCH}" = "armv7" ]; then \ |
| 36 | + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARM=7 GOARCH=arm"; \ |
| 37 | + elif [ "${BUILD_ARCH}" = "aarch64" ]; then \ |
| 38 | + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=arm64"; \ |
| 39 | + elif [ "${BUILD_ARCH}" = "i386" ]; then \ |
| 40 | + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=386"; \ |
| 41 | + elif [ "${BUILD_ARCH}" = "amd64" ]; then \ |
| 42 | + make coredns SYSTEM="CGO_ENABLED=0 GOOS=linux GOARCH=amd64"; \ |
| 43 | + else \ |
| 44 | + exit 1; \ |
| 45 | + fi |
| 46 | + |
| 47 | +FROM ${BUILD_FROM} |
| 48 | + |
| 49 | +WORKDIR /config |
| 50 | +COPY --from=builder /usr/src/coredns/coredns /usr/bin/coredns |
| 51 | +COPY rootfs / |
0 commit comments