| ARG BASEIMAGE |
| FROM ${BASEIMAGE} |
| |
| ENV DEBIAN_FRONTEND=noninteractive |
| RUN apt-get update && apt-get install -y --no-install-recommends \ |
| wget \ |
| ca-certificates \ |
| git \ |
| build-essential \ |
| dh-make \ |
| fakeroot \ |
| devscripts \ |
| lsb-release && \ |
| rm -rf /var/lib/apt/lists/* |
| |
| ARG GOLANG_VERSION=0.0.0 |
| RUN set -eux; \ |
| \ |
| arch="$(uname -m)"; \ |
| case "${arch##*-}" in \ |
| x86_64 | amd64) ARCH='amd64' ;; \ |
| ppc64el | ppc64le) ARCH='ppc64le' ;; \ |
| aarch64 | arm64) ARCH='arm64' ;; \ |
| *) echo "unsupported architecture" ; exit 1 ;; \ |
| esac; \ |
| wget -nv -O - https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-${ARCH}.tar.gz \ |
| | tar -C /usr/local -xz |
| |
| ENV GOPATH /go |
| ENV PATH $GOPATH/bin:/usr/local/go/bin:$PATH |
| |
| # packaging |
| ARG PKG_NAME |
| ARG PKG_VERS |
| ARG PKG_REV |
| |
| ENV DEBFULLNAME "NVIDIA CORPORATION" |
| ENV DEBEMAIL "cudatools@nvidia.com" |
| ENV REVISION "$PKG_VERS-$PKG_REV" |
| ENV SECTION "" |
| |
| # output directory |
| ENV DIST_DIR=/tmp/nvidia-container-toolkit-$PKG_VERS |
| RUN mkdir -p $DIST_DIR /dist |
| |
| # nvidia-container-toolkit |
| WORKDIR $GOPATH/src/nvidia-container-toolkit |
| COPY . . |
| |
| ARG GIT_COMMIT |
| ENV GIT_COMMIT ${GIT_COMMIT} |
| RUN make PREFIX=${DIST_DIR} cmds |
| |
| WORKDIR $DIST_DIR |
| COPY packaging/debian ./debian |
| |
| ARG LIBNVIDIA_CONTAINER_TOOLS_VERSION |
| ENV LIBNVIDIA_CONTAINER_TOOLS_VERSION ${LIBNVIDIA_CONTAINER_TOOLS_VERSION} |
| |
| RUN dch --create --package="${PKG_NAME}" \ |
| --newversion "${REVISION}" \ |
| "See https://gitlab.com/nvidia/container-toolkit/container-toolkit/-/blob/${GIT_COMMIT}/CHANGELOG.md for the changelog" && \ |
| dch --append "Bump libnvidia-container dependency to ${LIBNVIDIA_CONTAINER_TOOLS_VERSION}" && \ |
| dch -r "" && \ |
| if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then exit 1; fi |
| |
| CMD export DISTRIB="$(lsb_release -cs)" && \ |
| debuild -eDISTRIB -eSECTION -eLIBNVIDIA_CONTAINER_TOOLS_VERSION -eVERSION="${REVISION}" \ |
| --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \ |
| mv /tmp/*.deb /dist |