Merge branch 'upstream-cross-build' into 'master'
Update build system to match libnvidia-container (and friends) See merge request nvidia/container-toolkit/nvidia-docker!11
This commit is contained in:
commit
0d3b049a3c
104
.gitlab-ci.yml
Normal file
104
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,104 @@
|
|||
# Build packages for all supported OS / ARCH combinations
|
||||
|
||||
stages:
|
||||
- build-one
|
||||
- build-all
|
||||
|
||||
.build-setup: &build-setup
|
||||
image: docker:19.03.8
|
||||
|
||||
services:
|
||||
- name: docker:19.03.8-dind
|
||||
command: ["--experimental"]
|
||||
|
||||
before_script:
|
||||
- apk update
|
||||
- apk upgrade
|
||||
- apk add coreutils build-base sed git bash make
|
||||
- docker run --rm --privileged multiarch/qemu-user-static --reset -p yes -c yes
|
||||
|
||||
# build-one jobs build packages for a single OS / ARCH combination.
|
||||
#
|
||||
# They are run during the first stage of the pipeline as a smoke test to ensure
|
||||
# that we can successfully build packages on all of our architectures for a
|
||||
# single OS. They are triggered on any change to an MR. No artifacts are
|
||||
# produced as part of build-one jobs.
|
||||
.build-one-setup: &build-one-setup
|
||||
<<: *build-setup
|
||||
stage: build-one
|
||||
only:
|
||||
- merge_requests
|
||||
|
||||
# build-all jobs build packages for every OS / ARCH combination we support.
|
||||
#
|
||||
# They are run under two conditions:
|
||||
# 1) Automatically whenever a new tag is pushed to the repo (e.g. v1.1.0)
|
||||
# 2) Manually by a reviewer just before merging a MR.
|
||||
#
|
||||
# Unlike build-one jobs, it takes a long time to build the full suite
|
||||
# OS / ARCH combinations, so this is optimized to only run once per MR
|
||||
# (assuming it all passes). A full set of artifacts including the packages
|
||||
# built for each OS / ARCH are produced as a result of these jobs.
|
||||
.build-all-setup: &build-all-setup
|
||||
<<: *build-setup
|
||||
stage: build-all
|
||||
timeout: 2h 30m
|
||||
rules:
|
||||
- if: $CI_COMMIT_TAG
|
||||
when: always
|
||||
- if: $CI_MERGE_REQUEST_ID
|
||||
when: manual
|
||||
|
||||
variables:
|
||||
ARTIFACTS_NAME: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}-${CI_JOB_NAME}-artifacts-${CI_PIPELINE_ID}"
|
||||
ARTIFACTS_DIR: "${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}-artifacts-${CI_PIPELINE_ID}"
|
||||
DIST_DIR: "${CI_PROJECT_DIR}/${ARTIFACTS_DIR}"
|
||||
|
||||
artifacts:
|
||||
name: ${ARTIFACTS_NAME}
|
||||
paths:
|
||||
- ${ARTIFACTS_DIR}
|
||||
|
||||
# The full set of build-one jobs organizes to build
|
||||
# ubuntu18.04 in parallel on each of our supported ARCHs.
|
||||
build-one-amd64:
|
||||
<<: *build-one-setup
|
||||
script:
|
||||
- make ubuntu18.04-amd64
|
||||
|
||||
build-one-ppc64le:
|
||||
<<: *build-one-setup
|
||||
script:
|
||||
- make ubuntu18.04-ppc64le
|
||||
|
||||
build-one-arm64:
|
||||
<<: *build-one-setup
|
||||
script:
|
||||
- make ubuntu18.04-arm64
|
||||
|
||||
# The full set of build-all jobs organized to
|
||||
# have builds for each ARCH run in parallel.
|
||||
build-all-amd64:
|
||||
<<: *build-all-setup
|
||||
script:
|
||||
- make docker-amd64
|
||||
|
||||
build-all-x86_64:
|
||||
<<: *build-all-setup
|
||||
script:
|
||||
- make docker-x86_64
|
||||
|
||||
build-all-ppc64le:
|
||||
<<: *build-all-setup
|
||||
script:
|
||||
- make docker-ppc64le
|
||||
|
||||
build-all-arm64:
|
||||
<<: *build-all-setup
|
||||
script:
|
||||
- make docker-arm64
|
||||
|
||||
build-all-aarch64:
|
||||
<<: *build-all-setup
|
||||
script:
|
||||
- make docker-aarch64
|
221
Makefile
221
Makefile
|
@ -2,111 +2,142 @@
|
|||
|
||||
DOCKER ?= docker
|
||||
MKDIR ?= mkdir
|
||||
DIST_DIR ?= $(CURDIR)/dist
|
||||
|
||||
VERSION := 2.2.2
|
||||
RUNTIME_VERSION := 3.1.2
|
||||
LIB_NAME := nvidia-docker2
|
||||
LIB_VERSION := 2.2.2
|
||||
PKG_REV := 1
|
||||
|
||||
DIST_DIR := $(CURDIR)/dist
|
||||
RUNTIME_VERSION := 3.1.2
|
||||
|
||||
.NOTPARALLEL:
|
||||
.PHONY: all
|
||||
# Supported OSs by architecture
|
||||
AMD64_TARGETS := ubuntu20.04 ubuntu18.04 ubuntu16.04 debian10 debian9
|
||||
X86_64_TARGETS := centos7 centos8 rhel7 rhel8 amazonlinux1 amazonlinux2 opensuse-leap15.1
|
||||
PPC64LE_TARGETS := ubuntu18.04 ubuntu16.04 centos7 centos8 rhel7 rhel8
|
||||
ARM64_TARGETS := ubuntu20.04 ubuntu18.04
|
||||
AARCH64_TARGETS := centos8 rhel8
|
||||
|
||||
all: ubuntu18.04-amd64 ubuntu16.04-amd64 debian10-amd64 debian9-amd64 centos7-x86_64 amzn2-x86_64 amzn1-x86_64 opensuse-leap15.1-x86_64 \
|
||||
ubuntu16.04-ppc64le ubuntu18.04-ppc64le centos7-ppc64le
|
||||
# By default run all native docker-based targets
|
||||
docker-native:
|
||||
|
||||
ubuntu18.04-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="18.04" \
|
||||
--build-arg DOCKER_VERSION="docker-ce (>= 18.06.0~ce~3-0~ubuntu) | docker-ee (>= 18.06.0~ce~3-0~ubuntu) | docker.io (>= 18.06.0)" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/ubuntu:18.04-$*" -f docker/$*/Dockerfile.ubuntu .
|
||||
$(MKDIR) -p $(DIST_DIR)/ubuntu18.04/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/ubuntu:18.04-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/ubuntu18.04/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# Define top-level build targets
|
||||
docker%: SHELL:=/bin/bash
|
||||
|
||||
ubuntu16.04-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="16.04" \
|
||||
--build-arg DOCKER_VERSION="docker-ce (>= 18.06.0~ce~3-0~ubuntu) | docker-ee (>= 18.06.0~ce~3-0~ubuntu) | docker.io (>= 18.06.0)" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/ubuntu:16.04-$*" -f docker/$*/Dockerfile.ubuntu .
|
||||
$(MKDIR) -p $(DIST_DIR)/ubuntu16.04/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/ubuntu:16.04-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/ubuntu16.04/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# Native targets
|
||||
PLATFORM ?= $(shell uname -m)
|
||||
ifeq ($(PLATFORM),x86_64)
|
||||
NATIVE_TARGETS := $(AMD64_TARGETS) $(X86_64_TARGETS)
|
||||
$(AMD64_TARGETS): %: %-amd64
|
||||
$(X86_64_TARGETS): %: %-x86_64
|
||||
else ifeq ($(PLATFORM),ppc64le)
|
||||
NATIVE_TARGETS := $(PPC64LE_TARGETS)
|
||||
$(PPC64LE_TARGETS): %: %-ppc64le
|
||||
else ifeq ($(PLATFORM),aarch64)
|
||||
NATIVE_TARGETS := $(ARM64_TARGETS) $(AARCH64_TARGETS)
|
||||
$(ARM64_TARGETS): %: %-arm64
|
||||
$(AARCH64_TARGETS): %: %-aarch64
|
||||
endif
|
||||
docker-native: $(NATIVE_TARGETS)
|
||||
|
||||
debian10-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="10" \
|
||||
--build-arg DOCKER_VERSION="docker-ce (>= 18.06.0~ce~3-0~debian) | docker-ee (>= 18.06.0~ce~3-0~debian) | docker.io (>= 18.06.0)" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/debian:10-$*" -f docker/$*/Dockerfile.debian .
|
||||
$(MKDIR) -p $(DIST_DIR)/debian10/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/debian:10-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/debian10/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# amd64 targets
|
||||
AMD64_TARGETS := $(patsubst %, %-amd64, $(AMD64_TARGETS))
|
||||
$(AMD64_TARGETS): ARCH := amd64
|
||||
$(AMD64_TARGETS): %: --%
|
||||
docker-amd64: $(AMD64_TARGETS)
|
||||
|
||||
debian9-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="9" \
|
||||
--build-arg DOCKER_VERSION="docker-ce (>= 18.06.0~ce~3-0~debian) | docker-ee (>= 18.06.0~ce~3-0~debian) | docker.io (>= 18.06.0)" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/debian:9-$*" -f docker/$*/Dockerfile.debian .
|
||||
$(MKDIR) -p $(DIST_DIR)/debian9/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/debian:9-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/debian9/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# x86_64 targets
|
||||
X86_64_TARGETS := $(patsubst %, %-x86_64, $(X86_64_TARGETS))
|
||||
$(X86_64_TARGETS): ARCH := x86_64
|
||||
$(X86_64_TARGETS): %: --%
|
||||
docker-x86_64: $(X86_64_TARGETS)
|
||||
|
||||
centos7-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="7" \
|
||||
--build-arg DOCKER_VERSION="docker-ce >= 18.06.3.ce-3.el7" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/centos:7-$*" -f docker/$*/Dockerfile.centos .
|
||||
$(MKDIR) -p $(DIST_DIR)/centos7/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/centos:7-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/centos7/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# arm64 targets
|
||||
ARM64_TARGETS := $(patsubst %, %-arm64, $(ARM64_TARGETS))
|
||||
$(ARM64_TARGETS): ARCH := arm64
|
||||
$(ARM64_TARGETS): %: --%
|
||||
docker-arm64: $(ARM64_TARGETS)
|
||||
|
||||
amzn2-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="2" \
|
||||
--build-arg DOCKER_VERSION="docker >= 18.06.1ce-2.amzn2" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/amzn:2-docker-$*" -f docker/$*/Dockerfile.amzn .
|
||||
$(MKDIR) -p $(DIST_DIR)/amzn2/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/amzn:2-docker-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/amzn2/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# aarch64 targets
|
||||
AARCH64_TARGETS := $(patsubst %, %-aarch64, $(AARCH64_TARGETS))
|
||||
$(AARCH64_TARGETS): ARCH := aarch64
|
||||
$(AARCH64_TARGETS): %: --%
|
||||
docker-aarch64: $(AARCH64_TARGETS)
|
||||
|
||||
amzn1-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="1" \
|
||||
--build-arg DOCKER_VERSION="docker >= 18.06.1ce-2.16.amzn1" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/amzn:1-$*" -f docker/$*/Dockerfile.amzn .
|
||||
$(MKDIR) -p $(DIST_DIR)/amzn1/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/amzn:1-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/amzn1/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# ppc64le targets
|
||||
PPC64LE_TARGETS := $(patsubst %, %-ppc64le, $(PPC64LE_TARGETS))
|
||||
$(PPC64LE_TARGETS): ARCH := ppc64le
|
||||
$(PPC64LE_TARGETS): WITH_LIBELF := yes
|
||||
$(PPC64LE_TARGETS): %: --%
|
||||
docker-ppc64le: $(PPC64LE_TARGETS)
|
||||
|
||||
opensuse-leap15.1-%:
|
||||
$(DOCKER) build --build-arg VERSION_ID="15.1" \
|
||||
--build-arg DOCKER_VERSION="docker >= 18.09.1_ce" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
-t "nvidia/nvidia-docker2/opensuse-leap:15.1-$*" -f docker/$*/Dockerfile.opensuse-leap .
|
||||
$(MKDIR) -p $(DIST_DIR)/opensuse-leap15.1/$*
|
||||
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/opensuse-leap:15.1-$*"
|
||||
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/opensuse-leap15.1/$*
|
||||
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
|
||||
# docker target to build for all os/arch combinations
|
||||
docker-all: $(AMD64_TARGETS) $(X86_64_TARGETS) \
|
||||
$(ARM64_TARGETS) $(AARCH64_TARGETS) \
|
||||
$(PPC64LE_TARGETS)
|
||||
|
||||
# Default variables for all private '--' targets below.
|
||||
# One private target is defined for each OS we support.
|
||||
--%: TARGET_PLATFORM = $(*)
|
||||
--%: VERSION = $(patsubst $(OS)%-$(ARCH),%,$(TARGET_PLATFORM))
|
||||
--%: BASEIMAGE = $(OS):$(VERSION)
|
||||
--%: BUILDIMAGE = nvidia/$(LIB_NAME)/$(OS)$(VERSION)-$(ARCH)
|
||||
--%: DOCKERFILE = $(CURDIR)/docker/Dockerfile.$(OS)
|
||||
--%: ARTIFACTS_DIR = $(DIST_DIR)/$(OS)$(VERSION)/$(ARCH)
|
||||
--%: docker-build-%
|
||||
@
|
||||
|
||||
# private ubuntu target
|
||||
--ubuntu%: OS := ubuntu
|
||||
--ubuntu%: DOCKER_VERSION := docker-ce (>= 18.06.0~ce~3-0~ubuntu) | docker-ee (>= 18.06.0~ce~3-0~ubuntu) | docker.io (>= 18.06.0)
|
||||
|
||||
# private debian target
|
||||
--debian%: OS := debian
|
||||
--debian%: DOCKER_VERSION := docker-ce (>= 18.06.0~ce~3-0~debian) | docker-ee (>= 18.06.0~ce~3-0~debian) | docker.io (>= 18.06.0)
|
||||
|
||||
# private centos target
|
||||
--centos%: OS := centos
|
||||
--centos%: DOCKER_VERSION := docker-ce >= 18.06.3.ce-3.el7
|
||||
|
||||
# private amazonlinuxtarget
|
||||
--amazonlinux%: OS := amazonlinux
|
||||
--amazonlinux2%: DOCKER_VERSION := docker >= 18.06.1ce-2.amzn2
|
||||
--amazonlinux1%: DOCKER_VERSION := docker >= 18.06.1ce-2.16.amzn1
|
||||
|
||||
# private opensuse-leap target
|
||||
--opensuse-leap%: OS := opensuse-leap
|
||||
--opensuse-leap%: BASEIMAGE = opensuse/leap:$(VERSION)
|
||||
--opensuse-leap%: DOCKER_VERSION := docker >= 18.09.1_ce
|
||||
|
||||
# private rhel target (actually built on centos)
|
||||
--rhel%: OS := centos
|
||||
--rhel%: VERSION = $(patsubst rhel%-$(ARCH),%,$(TARGET_PLATFORM))
|
||||
--rhel%: ARTIFACTS_DIR = $(DIST_DIR)/rhel$(VERSION)/$(ARCH)
|
||||
--rhel%: DOCKER_VERSION := docker-ce >= 18.06.3.ce-3.el7
|
||||
|
||||
docker-build-%:
|
||||
@echo "Building for $(TARGET_PLATFORM)"
|
||||
docker pull --platform=linux/$(ARCH) $(BASEIMAGE)
|
||||
DOCKER_BUILDKIT=1 \
|
||||
$(DOCKER) build \
|
||||
--progress=plain \
|
||||
--build-arg BASEIMAGE=$(BASEIMAGE) \
|
||||
--build-arg DOCKER_VERSION="$(DOCKER_VERSION)" \
|
||||
--build-arg RUNTIME_VERSION="$(RUNTIME_VERSION)" \
|
||||
--build-arg PKG_VERS="$(LIB_VERSION)" \
|
||||
--build-arg PKG_REV="$(PKG_REV)" \
|
||||
--tag $(BUILDIMAGE) \
|
||||
--file $(DOCKERFILE) .
|
||||
$(DOCKER) run \
|
||||
-e DISTRIB \
|
||||
-e SECTION \
|
||||
-v $(ARTIFACTS_DIR):/dist \
|
||||
$(BUILDIMAGE)
|
||||
|
||||
docker-clean:
|
||||
IMAGES=$$(docker images "nvidia/$(LIB_NAME)/*" --format="{{.ID}}"); \
|
||||
if [ "$${IMAGES}" != "" ]; then \
|
||||
docker rmi -f $${IMAGES}; \
|
||||
fi
|
||||
|
||||
distclean:
|
||||
rm -rf $(DIST_DIR)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
ARG VERSION_ID
|
||||
FROM amazonlinux:${VERSION_ID}
|
||||
ARG BASEIMAGE
|
||||
FROM ${BASEIMAGE}
|
||||
|
||||
# packaging dependencies
|
||||
RUN yum install -y \
|
|
@ -1,5 +1,5 @@
|
|||
ARG VERSION_ID
|
||||
FROM centos:${VERSION_ID}
|
||||
ARG BASEIMAGE
|
||||
FROM ${BASEIMAGE}
|
||||
|
||||
# packaging dependencies
|
||||
RUN yum install -y \
|
|
@ -1,7 +1,8 @@
|
|||
ARG VERSION_ID
|
||||
FROM debian:${VERSION_ID}
|
||||
ARG BASEIMAGE
|
||||
FROM ${BASEIMAGE}
|
||||
|
||||
# packaging dependencies
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
dh-make \
|
||||
fakeroot \
|
|
@ -1,5 +1,5 @@
|
|||
ARG VERSION_ID
|
||||
FROM opensuse/leap:${VERSION_ID}
|
||||
ARG BASEIMAGE
|
||||
FROM ${BASEIMAGE}
|
||||
|
||||
# packaging dependencies
|
||||
RUN zypper install -y \
|
|
@ -1,7 +1,8 @@
|
|||
ARG VERSION_ID
|
||||
FROM ubuntu:${VERSION_ID}
|
||||
ARG BASEIMAGE
|
||||
FROM ${BASEIMAGE}
|
||||
|
||||
# packaging dependencies
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
dh-make \
|
||||
fakeroot \
|
|
@ -1,39 +0,0 @@
|
|||
ARG VERSION_ID
|
||||
FROM ppc64le/centos:${VERSION_ID}
|
||||
|
||||
# packaging dependencies
|
||||
RUN yum install -y \
|
||||
rpm-build && \
|
||||
rm -rf /var/cache/yum/*
|
||||
|
||||
# packaging
|
||||
ARG PKG_VERS
|
||||
ARG PKG_REV
|
||||
ARG RUNTIME_VERSION
|
||||
ARG DOCKER_VERSION
|
||||
|
||||
ENV VERSION $PKG_VERS
|
||||
ENV RELEASE $PKG_REV
|
||||
ENV DOCKER_VERSION $DOCKER_VERSION
|
||||
ENV RUNTIME_VERSION $RUNTIME_VERSION
|
||||
|
||||
# output directory
|
||||
ENV DIST_DIR=/tmp/nvidia-container-runtime-$PKG_VERS/SOURCES
|
||||
RUN mkdir -p $DIST_DIR /dist
|
||||
|
||||
COPY nvidia-docker $DIST_DIR
|
||||
COPY daemon.json $DIST_DIR
|
||||
|
||||
WORKDIR $DIST_DIR/..
|
||||
COPY rpm .
|
||||
|
||||
RUN sed -i "s;@VERSION@;${PKG_VERS};" $DIST_DIR/nvidia-docker
|
||||
|
||||
CMD rpmbuild --clean -bb \
|
||||
-D "_topdir $PWD" \
|
||||
-D "version $VERSION" \
|
||||
-D "release $RELEASE" \
|
||||
-D "docker_version $DOCKER_VERSION" \
|
||||
-D "runtime_version $RUNTIME_VERSION" \
|
||||
SPECS/nvidia-docker2.spec && \
|
||||
mv RPMS/noarch/*.rpm /dist
|
|
@ -1,43 +0,0 @@
|
|||
ARG VERSION_ID
|
||||
FROM ppc64le/ubuntu:${VERSION_ID}
|
||||
|
||||
# packaging dependencies
|
||||
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
dh-make \
|
||||
fakeroot \
|
||||
build-essential \
|
||||
devscripts \
|
||||
lsb-release && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# packaging
|
||||
ARG PKG_VERS
|
||||
ARG PKG_REV
|
||||
ARG RUNTIME_VERSION
|
||||
ARG DOCKER_VERSION
|
||||
|
||||
ENV DEBFULLNAME "NVIDIA CORPORATION"
|
||||
ENV DEBEMAIL "cudatools@nvidia.com"
|
||||
ENV REVISION "$PKG_VERS-$PKG_REV"
|
||||
ENV DOCKER_VERSION $DOCKER_VERSION
|
||||
ENV RUNTIME_VERSION $RUNTIME_VERSION
|
||||
ENV SECTION ""
|
||||
|
||||
# output directory
|
||||
ENV DIST_DIR=/tmp/nvidia-docker2-$PKG_VERS
|
||||
RUN mkdir -p $DIST_DIR /dist
|
||||
|
||||
# nvidia-docker 2.0
|
||||
COPY nvidia-docker $DIST_DIR/nvidia-docker
|
||||
COPY daemon.json $DIST_DIR/daemon.json
|
||||
|
||||
WORKDIR $DIST_DIR
|
||||
COPY debian ./debian
|
||||
|
||||
RUN sed -i "s;@VERSION@;${REVISION};" debian/changelog && \
|
||||
sed -i "s;@VERSION@;${PKG_VERS};" $DIST_DIR/nvidia-docker && \
|
||||
if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then echo "$(dpkg-parsechangelog --show-field=Version)" && exit 1; fi
|
||||
|
||||
CMD export DISTRIB="$(lsb_release -cs)" && \
|
||||
debuild --preserve-env --dpkg-buildpackage-hook='sh debian/prepare' -i -us -uc -b && \
|
||||
mv /tmp/*.deb /dist
|
Loading…
Reference in a new issue