diff --git a/Dockerfile b/Dockerfile index 71279a5559..f3225fadc5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -29,8 +29,6 @@ WORKDIR /go/src/github.com/vmware-tanzu/velero COPY . /go/src/github.com/vmware-tanzu/velero -RUN apt-get update && apt-get install -y bzip2 - FROM --platform=$BUILDPLATFORM builder-env as builder ARG TARGETOS @@ -45,8 +43,8 @@ ENV GOOS=${TARGETOS} \ GOARM=${TARGETVARIANT} RUN mkdir -p /output/usr/bin && \ - bash ./hack/download-restic.sh && \ export GOARM=$( echo "${GOARM}" | cut -c2-) && \ + bash ./hack/build-restic.sh && \ go build -o /output/${BIN} \ -ldflags "${LDFLAGS}" ${PKG}/cmd/${BIN} diff --git a/hack/download-restic.sh b/hack/build-restic.sh similarity index 82% rename from hack/download-restic.sh rename to hack/build-restic.sh index 2da59383cc..5859414fd3 100644 --- a/hack/download-restic.sh +++ b/hack/build-restic.sh @@ -22,6 +22,7 @@ set -o pipefail # is the path expected by the Velero Dockerfile. output_dir=${OUTPUT_DIR:-/output/usr/bin} restic_bin=${output_dir}/restic +build_path=$(dirname "$PWD") if [[ -z "${BIN}" ]]; then echo "BIN must be set" @@ -46,8 +47,9 @@ if [[ -z "${RESTIC_VERSION}" ]]; then exit 1 fi -curl -s -L https://github.com/restic/restic/releases/download/v${RESTIC_VERSION}/restic_${RESTIC_VERSION}_${GOOS}_${GOARCH}.bz2 -O -bunzip2 restic_${RESTIC_VERSION}_${GOOS}_${GOARCH}.bz2 -mv restic_${RESTIC_VERSION}_${GOOS}_${GOARCH} ${restic_bin} - +mkdir ${build_path}/restic +git clone -b v${RESTIC_VERSION} https://github.com/restic/restic.git ${build_path}/restic +pushd ${build_path}/restic +go run build.go --goos "${GOOS}" --goarch "${GOARCH}" --goarm "${GOARM}" -o ${restic_bin} chmod +x ${restic_bin} +popd