diff --git a/Dockerfile b/Dockerfile index 2eacd87ba..ee5186fba 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,7 +43,7 @@ ENV GOOS=${TARGETOS} \ GOARM=${TARGETVARIANT} RUN mkdir -p /output/usr/bin && \ - bash ./hack/download-restic.sh && \ + bash ./hack/build-restic.sh && \ export GOARM=$( echo "${GOARM}" | cut -c2-) && \ go build -o /output/${BIN} \ -ldflags "${LDFLAGS}" ${PKG}/cmd/${BIN} diff --git a/changelogs/unreleased/5574-qiuming-best b/changelogs/unreleased/5574-qiuming-best new file mode 100644 index 000000000..c872212b5 --- /dev/null +++ b/changelogs/unreleased/5574-qiuming-best @@ -0,0 +1 @@ +Add compile restic binary for CVE fix diff --git a/hack/download-restic.sh b/hack/build-restic.sh similarity index 83% rename from hack/download-restic.sh rename to hack/build-restic.sh index 2da59383c..e1e42a285 100755 --- 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 -o ${restic_bin} chmod +x ${restic_bin} +popd