|
| 1 | +# {{.RENDER_MSG}} |
| 2 | +# SOURCE: {{.SRC}} |
| 3 | +ARG ARCH |
| 4 | +ARG DROPGZ_VERSION=v0.0.12 |
| 5 | +ARG OS_VERSION |
| 6 | +ARG OS |
| 7 | + |
| 8 | +# {{.GO_IMG}} |
| 9 | +FROM --platform=linux/${ARCH} {{.GO_PIN}} AS go |
| 10 | + |
| 11 | +# {{.MARINER_CORE_IMG}} |
| 12 | +FROM --platform=linux/${ARCH} {{.MARINER_CORE_PIN}} AS mariner-core |
| 13 | + |
| 14 | +FROM go AS azure-vnet |
| 15 | +ARG OS |
| 16 | +ARG VERSION |
| 17 | +ARG CNI_AI_PATH |
| 18 | +ARG CNI_AI_ID |
| 19 | +WORKDIR /azure-container-networking |
| 20 | +COPY . . |
| 21 | +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/network/plugin/main.go |
| 22 | +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-telemetry -trimpath -ldflags "-X main.version="$VERSION" -X "$CNI_AI_PATH"="$CNI_AI_ID"" -gcflags="-dwarflocationlists=true" cni/telemetry/service/telemetrymain.go |
| 23 | +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-ipam -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/ipam/plugin/main.go |
| 24 | +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/azure-vnet-stateless -trimpath -ldflags "-X main.version="$VERSION"" -gcflags="-dwarflocationlists=true" cni/network/stateless/main.go |
| 25 | + |
| 26 | +FROM mariner-core AS compressor |
| 27 | +ARG OS |
| 28 | +WORKDIR /payload |
| 29 | +COPY --from=azure-vnet /go/bin/* /payload/ |
| 30 | +COPY --from=azure-vnet /azure-container-networking/cni/azure-$OS.conflist /payload/azure.conflist |
| 31 | +COPY --from=azure-vnet /azure-container-networking/cni/azure-$OS-swift.conflist /payload/azure-swift.conflist |
| 32 | +COPY --from=azure-vnet /azure-container-networking/cni/azure-linux-multitenancy-transparent-vlan.conflist /payload/azure-multitenancy-transparent-vlan.conflist |
| 33 | +COPY --from=azure-vnet /azure-container-networking/cni/azure-$OS-swift-overlay.conflist /payload/azure-swift-overlay.conflist |
| 34 | +COPY --from=azure-vnet /azure-container-networking/cni/azure-$OS-swift-overlay-dualstack.conflist /payload/azure-swift-overlay-dualstack.conflist |
| 35 | +COPY --from=azure-vnet /azure-container-networking/cni/azure-$OS-multitenancy.conflist /payload/azure-multitenancy.conflist |
| 36 | +COPY --from=azure-vnet /azure-container-networking/telemetry/azure-vnet-telemetry.config /payload/azure-vnet-telemetry.config |
| 37 | +RUN cd /payload && sha256sum * > sum.txt |
| 38 | +RUN gzip --verbose --best --recursive /payload && for f in /payload/*.gz; do mv -- "$f" "${f%%.gz}"; done |
| 39 | + |
| 40 | +FROM go AS dropgz |
| 41 | +ARG DROPGZ_VERSION |
| 42 | +ARG OS |
| 43 | +ARG VERSION |
| 44 | +RUN go mod download github.com/azure/azure-container-networking/dropgz@$DROPGZ_VERSION |
| 45 | +WORKDIR /go/pkg/mod/github.com/azure/azure-container-networking/dropgz\@$DROPGZ_VERSION |
| 46 | +COPY --from=compressor /payload/* pkg/embed/fs/ |
| 47 | +RUN GOOS=$OS CGO_ENABLED=0 go build -a -o /go/bin/dropgz -trimpath -ldflags "-X github.com/Azure/azure-container-networking/dropgz/internal/buildinfo.Version="$VERSION"" -gcflags="-dwarflocationlists=true" main.go |
| 48 | + |
| 49 | +FROM scratch AS bins |
| 50 | +COPY --from=azure-vnet /go/bin/* / |
| 51 | + |
| 52 | +FROM scratch AS linux |
| 53 | +COPY --from=dropgz /go/bin/dropgz dropgz |
| 54 | +ENTRYPOINT [ "/dropgz" ] |
| 55 | + |
| 56 | +# {{.WIN_HPC_IMG}} |
| 57 | +FROM --platform=windows/${ARCH} {{.WIN_HPC_PIN}} as hpc |
| 58 | + |
| 59 | +FROM hpc as windows |
| 60 | +COPY --from=dropgz /go/bin/dropgz dropgz.exe |
| 61 | +ENTRYPOINT [ "/dropgz.exe" ] |
0 commit comments