Compare commits

...

83 commits

Author SHA1 Message Date
Evan Lezar 9de312f595 Merge branch 'fix-toolkit-rpm-dependencies' into 'master'
Fix minimum toolkit version in RPM spec

See merge request nvidia/container-toolkit/nvidia-docker!29
2021-11-05 14:02:58 +00:00
Evan Lezar 146eb62cf6 Fix minimum toolkit version in RPM spec
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-11-05 15:00:43 +01:00
Evan Lezar b920bb4bfc Merge branch 'fix-toolkit-version-replacement' into 'master'
Use separate make variable for toolkit version

See merge request nvidia/container-toolkit/nvidia-docker!28
2021-11-05 13:52:22 +00:00
Evan Lezar 25ab048e4f Use separate make variable for toolkit version
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-11-05 14:42:02 +01:00
Evan Lezar 9fca9bb435 Merge branch 'fix-toolkit-version-replacement' into 'master'
Fix TOOLKIT_VERSION replacement

See merge request nvidia/container-toolkit/nvidia-docker!27
2021-11-05 13:03:39 +00:00
Evan Lezar b45bca6e56 Fix TOOLKIT_VERSION replacement
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-11-05 14:01:47 +01:00
Evan Lezar 1b78009668 Merge branch 'bump-version-2.7.0-rc.2' into 'master'
Bump version to 2.7.0-rc.2

See merge request nvidia/container-toolkit/nvidia-docker!26
2021-11-04 16:13:47 +00:00
Evan Lezar 38752d3494 Bump version to 2.7.0-rc.2
This also allows the TOOLKIT dependency to be specified as a make
variable requiring fewer changes when releasing this package from
the toolkit in future.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-11-04 16:24:28 +01:00
Evan Lezar 4613cdae34 Merge branch 'al2-aarch64' into 'master'
Add aarch64 build for Amazon Linux 2

See merge request nvidia/container-toolkit/nvidia-docker!25
2021-10-19 13:26:58 +00:00
Evan Lezar c923fa9baf Merge branch 'set-version' into 'master'
Bump version to 2.7.0-rc.1

See merge request nvidia/container-toolkit/nvidia-docker!24
2021-10-19 13:26:06 +00:00
Evan Lezar ef811953d7 Correct typo in changelog
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-10-18 12:26:18 +02:00
Evan Lezar c6895f8d18 Add aarch64 build for Amazon Linux 2
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-10-18 11:54:23 +02:00
Evan Lezar 7f453642e7 Bump verison to 2.7.0-rc.1
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-10-15 13:39:04 +02:00
Evan Lezar 0940c7f231 Move make logic to docker.mk to mirror other projects
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-10-08 15:05:49 +02:00
Evan Lezar 52ed1032c8 Merge branch 'fix-rpm-build-revisions' into 'master'
Fix issues with package revision

See merge request nvidia/container-toolkit/nvidia-docker!23
2021-09-28 18:00:46 +00:00
Evan Lezar 1e579fadcd Correct nvidia-container-toolkit dependency
This change adds a package revision (3) to the nvidia-container-toolkit
dependency. This is to ensure that none of the released package versions
incorrectly meet the >> 1.5.1 requirement.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-09-27 16:03:07 +02:00
Evan Lezar 842a3086de Use consisent package revisions for rpm packages
Using differing package revisions for different rpm targets makes
correctly defining packaging dependencies for other components of
the stack problematic. This change ensures that the same package
revision is used for all rpm targets.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-09-23 19:54:34 +02:00
Evan Lezar 5a304331c0 Merge branch 'depend-on-nvidia-container-toolkit' into 'master'
Depend on nvidia-container-toolkit package instead of nvidia-container-runtime

See merge request nvidia/container-toolkit/nvidia-docker!21
2021-09-20 15:14:05 +00:00
Evan Lezar 8f94f91863 Correct DIST_DIR in rpm build docker files
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-09-20 16:03:04 +02:00
Evan Lezar f4ba99f986 Depend on nvidia-container-toolkit instead of nvidia-container-runtime
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-09-06 15:58:19 +02:00
Evan Lezar ef115045af Bump version for post 2.6.0 development
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-09-06 15:52:13 +02:00
Evan Lezar ccf3e312a2 Merge branch 'fix-jenkinsfile' into 'master'
Remove reference to missing make file

See merge request nvidia/container-toolkit/nvidia-docker!20
2021-06-23 11:12:16 +00:00
Evan Lezar d1db4241dc [INTERNAL] Remove reference to missing make file
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-06-23 11:39:29 +02:00
Evan Lezar 5ede9e621c Merge branch 'fix-jenkinsfile' into 'master'
Fix isTag in Jenkinsfile

See merge request nvidia/container-toolkit/nvidia-docker!19
2021-06-14 12:25:42 +00:00
Evan Lezar 54dfaf31c6 Fix isTag in Jenkinsfile
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-06-14 13:48:28 +02:00
Evan Lezar 9a98d3ff1b Merge branch 'CNT-1334-publish-tags-to-artifactory' into 'master'
Add artifactory publish step

See merge request nvidia/container-toolkit/nvidia-docker!18
2021-05-18 19:06:13 +00:00
Evan Lezar e7b62e3292 Add artifactory publish step
This change simplifies the build process by only targetting ubuntu20.04-amd64
and adds logic to push tagged builds to artifactory.

Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-05-18 11:35:59 +02:00
Kevin Klues 26efc6d42c Merge branch 'upstream-bump-v2.6.0' into 'master'
Bump version to 2.6.0

See merge request nvidia/container-toolkit/nvidia-docker!17
2021-04-29 14:01:50 +00:00
Kevin Klues a55df56621 Bump version to v2.6.0
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2021-04-29 12:27:08 +00:00
Kevin Klues 2c068ea0c3 Update dependent nvidia-container-runtime version to 3.5.0
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2021-04-29 12:24:16 +00:00
Evan Lezar b17795a6f1 Merge branch 'add-jenkins-ci' into 'master'
Add Jenkins pipeline definition

See merge request nvidia/container-toolkit/nvidia-docker!16
2021-03-24 12:02:34 +00:00
Evan Lezar 3ad571f6ca Add Jenkinsfile for building packages
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-03-24 09:39:44 +01:00
Evan Lezar f2919b28e8 Quote all build args
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2021-03-24 09:32:28 +01:00
Kevin Klues e2d0f02263 Merge branch 'upstream-bump-v2.5.0' into 'master'
Bump to version 2.5.0

See merge request nvidia/container-toolkit/nvidia-docker!15
2020-09-16 13:56:48 +00:00
Kevin Klues 869d27d8d3 Bump to version 2.5.0
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-09-16 12:09:10 +00:00
Kevin Klues a4b6214173 Add %config directive to daemon.json for RPM installations
This prevents existing modifications to this file to be automatically
saved in a backup instead of overwritten.

Details here:
https://docs.fedoraproject.org/ro/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s05s03.html

Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-09-16 12:08:26 +00:00
Jon Mayo 11097a332a Merge branch 'dualvtable/nvidia-docker-Update-readme'
* dualvtable/nvidia-docker-Update-readme:
  Update readme to point to the official documentation
  Update changelogs for 2.4.0
  Bump version to 2.4.0
  Update dependence on nvidia-container-runtime to 3.3.0
2020-09-01 16:27:49 -07:00
Pramod Ramarao 88a2fda83c Update readme to point to the official documentation 2020-09-01 16:00:32 -07:00
Kevin Klues 6e38c3f979 Merge branch 'upstream-bump-v2.4.0' into 'master'
Bump to version 2.4.0

See merge request nvidia/container-toolkit/nvidia-docker!12
2020-07-08 20:35:26 +00:00
Kevin Klues bad43e8cbe Update changelogs for 2.4.0
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-07-08 18:34:22 +00:00
Kevin Klues 5e7964ad8e Bump version to 2.4.0
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-07-08 18:30:35 +00:00
Kevin Klues b9c701554e Update dependence on nvidia-container-runtime to 3.3.0
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-07-08 18:29:46 +00:00
Renaud Gaubert 09a012761e Update package license to match source license
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-06-10 21:32:07 +00:00
Kevin Klues e6e992a9c2 Update changelog for 2.3.0 release (typo in previous commit for version)
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-05-18 13:40:27 +02:00
Renaud Gaubert 8557216d04 Bump to version 3.2.0
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-05-15 19:48:37 +00:00
Renaud Gaubert 0d3b049a3c 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
2020-05-15 18:11:14 +00:00
Kevin Klues 0c77d3e9c1 Update .gitlab-ci.yml to match that of libnvidia-container
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-05-14 21:33:28 +00:00
Kevin Klues f6f83459fd Update build system to match libnvidia-container
Signed-off-by: Kevin Klues <kklues@nvidia.com>
2020-05-14 21:32:55 +00:00
Renaud Gaubert 166fa7ffb2 Update README to reflect distribution support
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-05-11 07:00:48 +00:00
Renaud Gaubert b44509f281 Fix Docker reference from 110.03 to 19.03
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-02-26 00:10:06 -08:00
Renaud Gaubert bf3d3d1aed Add Podman example, update all CUDA example to 10.0
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-02-21 12:15:02 -08:00
Renaud Gaubert fc9c250f93 Merge branch 'ppc64' into 'master'
Update Makefile to also generate ppc packages

See merge request nvidia/container-toolkit/nvidia-docker!10
2020-02-12 20:33:34 +00:00
Renaud Gaubert be71170540 Update Makefile to also generate ppc packages
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-02-11 15:16:14 -08:00
Renaud Gaubert 3f1edae37e Merge branch 'aprowe-patch-1' into 'master'
Removed Dollar Signs from README

See merge request nvidia/container-toolkit/nvidia-docker!9
2020-01-29 19:14:56 +00:00
Alex Rowe 7212fd2211
Removed Dollar Signs from README
Removed Dollar Signs from README.me code snippets to make for easy copying / pasting.

Signed-off-by: Alexander Rowe <alexrowe707@gmail.com>
2020-01-21 14:41:29 -06:00
Renaud Gaubert 8d5755fc59 Update RHEL Docker instructions
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2020-01-09 08:56:08 -08:00
Renaud Gaubert 0ac3631c19 Merge branch 'master' into 'master'
Include docker-compose warning in README.

See merge request nvidia/container-toolkit/nvidia-docker!8
2019-12-05 09:04:46 +00:00
Christoph Reimers 3ce5bf71cb Include docker-compose warning in README.
Signed-off-by: Christoph Reimers <christoph@superservice-international.com>
2019-12-04 18:14:48 -05:00
Renaud Gaubert f65beafbfa Merge branch 'README' into 'master'
Add GPG instructions + Docker RHEL PPC/x86

See merge request nvidia/container-toolkit/nvidia-docker!6
2019-09-25 01:12:18 +00:00
Renaud Gaubert 859c512503 Add GPG instructions
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-09-24 18:11:12 -07:00
Renaud Gaubert 04a1e59f37 Add instruction for Docker on RHEL
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-09-24 14:28:11 -07:00
Renaud Gaubert 27f8c59b99 Mention that the toolkit is not required on the host
Closes https://github.com/NVIDIA/nvidia-docker/issues/964

Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-09-18 13:02:12 -07:00
Renaud Gaubert c8f2c1567d Merge branch 'master' into 'master'
Update contributing.md to reflect the right project name

See merge request nvidia/container-toolkit/nvidia-docker!5
2019-09-13 22:21:16 +00:00
Renaud Gaubert 2545ca0bfd Update contributing.md to reflect the right project name
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-09-13 22:21:16 +00:00
Jordan Jacobelli 0f10e4f8c5
Bump to version 2.2.2
Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-09-04 10:57:10 -07:00
Renaud Gaubert 7f35ddb77e Merge branch 'readme-update' into 'master'
Miss-placement of single quote

See merge request nvidia/container-toolkit/nvidia-docker!3
2019-08-27 20:44:11 +00:00
Renaud Gaubert 96f1d6f9bf Merge branch 'master' into 'master'
Add debian10 in README.md

See merge request nvidia/container-toolkit/nvidia-docker!4
2019-08-26 18:37:46 +00:00
Jordan Jacobelli 7bf0c0e9f8
Add debian10 in README.md
Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-08-26 09:46:28 -07:00
Jordan Jacobelli 479c80263a Bump to version 2.2.1
Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-08-23 16:25:55 -07:00
Tiziano Müller ee1c56f9e9 fix duplicated DOCKER/RUNTIME_VERSION ENV/ARG declarations 2019-08-23 15:45:20 -07:00
Tiziano Müller f881009618 Add openSUSE Leap 15.1 support
This requires support for openSUSE in the nvidia-container-runtime, see:

  https://github.com/NVIDIA/nvidia-container-runtime/pull/32

Fixes #657

Signed-off-by: Tiziano Müller <tiziano.mueller@chem.uzh.ch>
2019-08-23 15:45:20 -07:00
Renaud Gaubert 9113027bd5 Remove CLA
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-08-23 15:45:06 -07:00
Joel Hanson 6881064cf6 Missplacement of single quote
Signed-off-by: Joel Hanson <joelhanson025@gmail.com>
2019-08-23 14:09:35 +05:30
Jordan Jacobelli d7993708d5
Add debian10 support
Signed-off-by: Jordan Jacobelli <jjacobelli@nvidia.com>
2019-08-21 11:22:35 -07:00
Renaud Gaubert bd60b23618 Merge branch 'patch-1' into 'master'
Directly use shields.io license detection

See merge request nvidia/container-toolkit/nvidia-docker!2
2019-08-20 05:46:11 +00:00
Simon Biggs 36a3f93764 Directly use shields.io license detection 2019-08-20 05:31:25 +00:00
Renaud Gaubert 445b308a45 Relicense to Apache2
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-08-14 16:41:01 -07:00
Renaud Gaubert 315b92b0b7 Fix nvidia-docker version
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-08-12 14:42:31 -07:00
Renaud Gaubert 6c5387deba Replace duplicate quickstart
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-07-25 16:53:35 -07:00
Renaud Gaubert e6a828ba7b Fix device field syntax in readme
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-07-25 10:32:08 -07:00
Renaud Gaubert 36e7a11c52 Update README for docker 19.03 (#996)
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-07-24 13:41:11 -07:00
Rajat Chopra e4a4524587 centos rpm build should respect runtime version demand 2019-07-23 17:05:38 -07:00
Renaud Gaubert abeed31570 Bump the version to 2.2.0
Signed-off-by: Renaud Gaubert <rgaubert@nvidia.com>
2019-07-23 16:44:50 -07:00
20 changed files with 1212 additions and 452 deletions

104
.gitlab-ci.yml Normal file
View 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

160
CLA
View file

@ -1,160 +0,0 @@
The NVIDIA Docker
Software Grant and Corporate Contributor License Agreement ("Agreement")
Thank you for your interest in the NVIDIA Docker Project (the
"Project"). In order to clarify the intellectual property license
granted with Contributions from any person or entity, NVIDIA
Corporation (the “Copyright Holders") must have a Contributor License
Agreement (CLA) on file that has been signed by each Contributor,
indicating agreement to the license terms below. This license is
for your protection as a Contributor as well as the protection of the
Project and its users; it does not change your rights to use your own
Contributions for any other purpose.
This version of the Agreement allows an entity (the "Corporation") to
submit Contributions to the Project, to authorize Contributions
submitted by its designated employees to the Project, and to grant
copyright and patent licenses thereto to the Copyright Holders.
If you have not already done so, please complete and sign, then scan and
email a pdf file of this Agreement to digits@nvidia.com.
Please read this document carefully before signing and keep a copy for
your records.
Corporation name: ________________________________________________
Corporation address: ________________________________________________
________________________________________________
________________________________________________
Point of Contact: ________________________________________________
E-Mail: ________________________________________________
Telephone: _____________________ Fax: _____________________
You accept and agree to the following terms and conditions for Your
present and future Contributions submitted to the Project. In
return, the Copyright Holders shall not use Your Contributions in a way
that is contrary to the public benefit or inconsistent with its nonprofit
status and bylaws in effect at the time of the Contribution. Except
for the license granted herein to the Copyright Holders and recipients of
software distributed by the Copyright Holders, You reserve all right, title,
and interest in and to Your Contributions.
1. Definitions.
"You" (or "Your") shall mean the copyright owner or legal entity
authorized by the copyright owner that is making this Agreement
with the Copyright Holders. For legal entities, the entity making a
Contribution and all other entities that control, are controlled by,
or are under common control with that entity are considered to be a
single Contributor. For the purposes of this definition, "control"
means (i) the power, direct or indirect, to cause the direction or
management of such entity, whether by contract or otherwise, or
(ii) ownership of fifty percent (50%) or more of the outstanding
shares, or (iii) beneficial ownership of such entity.
"Contribution" shall mean the code, documentation or other original
works of authorship expressly identified in Schedule B, as well as
any original work of authorship, including
any modifications or additions to an existing work, that is intentionally
submitted by You to the Copyright Holders for inclusion in, or
documentation of, any of the products owned or managed by the
Copyright Holders (the "Work"). For the purposes of this definition,
"submitted" means any form of electronic, verbal, or written
communication sent to the Copyright Holders or its representatives,
including but not limited to communication on electronic mailing
lists, source code control systems, and issue tracking systems
that are managed by, or on behalf of, the Copyright Holders for the
purpose of discussing and improving the Work, but excluding
communication that is conspicuously marked or otherwise designated
in writing by You as "Not a Contribution."
2. Grant of Copyright License. Subject to the terms and conditions
of this Agreement, You hereby grant to the Copyright Holders and to
recipients of software distributed by the Copyright Holders a
perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable copyright license to reproduce, prepare derivative works
of, publicly display, publicly perform, sublicense, and distribute
Your Contributions and such derivative works.
3. Grant of Patent License. Subject to the terms and conditions of
this Agreement, You hereby grant to the Copyright Holders and to
recipients of software distributed by the Copyright Holders
a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
irrevocable (except as stated in this section) patent license
to make, have made, use, offer to sell, sell, import, and otherwise
transfer the Work, where such license applies only to those
patent claims licensable by You that are necessarily infringed
by Your Contribution(s) alone or by combination of Your Contribution(s)
with the Work to which such Contribution(s) were submitted.
If any entity institutes patent litigation against You or any
other entity (including a cross-claim or counterclaim in a lawsuit)
alleging that your Contribution, or the Work to which you have
contributed, constitutes direct or contributory patent infringement,
then any patent licenses granted to that entity under this Agreement
for that Contribution or Work shall terminate as of the date such
litigation is filed.
4. You represent that You are legally entitled to grant the above
license. You represent further that each employee of the
Corporation designated on Schedule A below (or in a subsequent
written modification to that Schedule) is authorized to submit
Contributions on behalf of the Corporation.
5. You represent that each of Your Contributions is Your original
creation (see section 7 for submissions on behalf of others).
6. You are not expected to provide support for Your Contributions,
except to the extent You desire to provide support. You may provide
support for free, for a fee, or not at all. Unless required by
applicable law or agreed to in writing, You provide Your
Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
OF ANY KIND, either express or implied, including, without
limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT,
MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.
7. Should You wish to submit work that is not Your original creation,
You may submit it to the Copyright Holders separately from any
Contribution, identifying the complete details of its source and
of any license or other restriction (including, but not limited
to, related patents, trademarks, and license agreements) of which
you are personally aware, and conspicuously marking the work as
"Submitted on behalf of a third-party: [named here]".
8. It is your responsibility to notify the Copyright Holders when any change
is required to the list of designated employees authorized to submit
Contributions on behalf of the Corporation, or to the Corporation's
Point of Contact with the Copyright Holders.
Please sign: __________________________________ Date: _______________
Title: __________________________________
Corporation: __________________________________
Schedule A
[Initial list of designated employees. NB: authorization is not
tied to particular Contributions.]
Schedule B
[Identification of optional concurrent software grant. Would be
left blank or omitted if there is no concurrent software grant.]

60
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,60 @@
# Contribute to the NVIDIA Container Toolkit
Want to hack on the NVIDIA Container Toolkit Project? Awesome!
We only require you to sign your work, the below section describes this!
## Sign your work
The sign-off is a simple line at the end of the explanation for the patch. Your
signature certifies that you wrote the patch or otherwise have the right to pass
it on as an open-source patch. The rules are pretty simple: if you can certify
the below (from [developercertificate.org](http://developercertificate.org/)):
```
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
it.
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.
```
Then you just add a line to every git commit message:
Signed-off-by: Joe Smith <joe.smith@email.com>
Use your real name (sorry, no pseudonyms or anonymous contributions.)
If you set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`.

106
Jenkinsfile vendored Normal file
View file

@ -0,0 +1,106 @@
/*
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
*/
podTemplate (cloud:'sw-gpu-cloudnative',
containers: [
containerTemplate(name: 'docker', image: 'docker:dind', ttyEnabled: true, privileged: true)
]) {
node(POD_LABEL) {
def scmInfo
stage('checkout') {
scmInfo = checkout(scm)
}
stage('dependencies') {
container('docker') {
sh 'apk add --no-cache make bash git'
}
}
def versionInfo
stage('version') {
container('docker') {
versionInfo = getVersionInfo(scmInfo)
println "versionInfo=${versionInfo}"
}
}
def dist = 'ubuntu20.04'
def arch = 'amd64'
def stageLabel = "${dist}-${arch}"
stage('build-one') {
container('docker') {
stage (stageLabel) {
sh "make ADD_DOCKER_PLATFORM_ARGS=true ${dist}-${arch}"
}
}
}
stage('release') {
container('docker') {
stage (stageLabel) {
def component = 'main'
def repository = 'sw-gpu-cloudnative-debian-local/pool/main/'
def uploadSpec = """{
"files":
[ {
"pattern": "./dist/${dist}/${arch}/*.deb",
"target": "${repository}",
"props": "deb.distribution=${dist};deb.component=${component};deb.architecture=${arch}"
}
]
}"""
sh "echo starting release with versionInfo=${versionInfo}"
if (versionInfo.isTag) {
// upload to artifactory repository
def server = Artifactory.server 'sw-gpu-artifactory'
server.upload spec: uploadSpec
} else {
sh "echo skipping release for non-tagged build"
}
}
}
}
}
}
// getVersionInfo returns a hash of version info
def getVersionInfo(def scmInfo) {
def versionInfo = [
isTag: isTag(scmInfo.GIT_BRANCH)
]
scmInfo.each { k, v -> versionInfo[k] = v }
return versionInfo
}
def isTag(def branch) {
if (!branch.startsWith('v')) {
return false
}
def version = shOutput('git describe --all --exact-match --always')
return version == "tags/${branch}"
}
def shOuptut(def script) {
return sh(script: script, returnStdout: true).trim()
}

223
LICENSE
View file

@ -1,25 +1,202 @@
Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of NVIDIA CORPORATION nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

111
Makefile
View file

@ -1,93 +1,24 @@
# Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
# Copyright (c) 2017-2021, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
DOCKER ?= docker
MKDIR ?= mkdir
LIB_NAME := nvidia-docker2
LIB_VERSION := 2.7.0
LIB_TAG := rc.2
VERSION := 2.1.1
RUNTIME_VERSION := 3.0.1
PKG_REV := 1
TOOLKIT_VERSION ?= 1.6.0
TOOLKIT_TAG ?= rc.2
DIST_DIR := $(CURDIR)/dist
.NOTPARALLEL:
.PHONY: all
all: ubuntu18.04 ubuntu16.04 debian9 centos7 amzn2 amzn1
ubuntu18.04: ARCH := amd64
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 Dockerfile.ubuntu .
$(MKDIR) -p $(DIST_DIR)/ubuntu18.04/$(ARCH)
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/ubuntu:18.04"
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/ubuntu18.04/$(ARCH)
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
ubuntu16.04: ARCH := amd64
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 Dockerfile.ubuntu .
$(MKDIR) -p $(DIST_DIR)/ubuntu16.04/$(ARCH)
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/ubuntu:16.04"
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/ubuntu16.04/$(ARCH)
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
debian9: ARCH := amd64
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 Dockerfile.debian .
$(MKDIR) -p $(DIST_DIR)/debian9/$(ARCH)
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/debian:9"
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/debian9/$(ARCH)
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
centos7: ARCH := x86_64
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 Dockerfile.centos .
$(MKDIR) -p $(DIST_DIR)/centos7/$(ARCH)
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/centos:7"
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/centos7/$(ARCH)
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
amzn2: ARCH := x86_64
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 Dockerfile.amzn .
$(MKDIR) -p $(DIST_DIR)/amzn2/$(ARCH)
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/amzn:2-docker"
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/amzn2/$(ARCH)
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
amzn1: ARCH := x86_64
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 Dockerfile.amzn .
$(MKDIR) -p $(DIST_DIR)/amzn1/$(ARCH)
$(DOCKER) run --cidfile $@.cid "nvidia/nvidia-docker2/amzn:1"
$(DOCKER) cp $$(cat $@.cid):/dist/. $(DIST_DIR)/amzn1/$(ARCH)
$(DOCKER) rm $$(cat $@.cid) && rm $@.cid
# By default run all native docker-based targets
docker-native:
include $(CURDIR)/docker/docker.mk

109
README.md
View file

@ -1,113 +1,32 @@
# NVIDIA Container Runtime for Docker
# NVIDIA Container Toolkit
[![GitHub license](https://img.shields.io/badge/license-New%20BSD-blue.svg?style=flat-square)](https://raw.githubusercontent.com/NVIDIA/nvidia-docker/master/LICENSE)
[![GitHub license](https://img.shields.io/github/license/NVIDIA/nvidia-docker?style=flat-square)](https://raw.githubusercontent.com/NVIDIA/nvidia-docker/master/LICENSE)
[![Documentation](https://img.shields.io/badge/documentation-wiki-blue.svg?style=flat-square)](https://github.com/NVIDIA/nvidia-docker/wiki)
[![Package repository](https://img.shields.io/badge/packages-repository-b956e8.svg?style=flat-square)](https://nvidia.github.io/nvidia-docker)
![nvidia-gpu-docker](https://cloud.githubusercontent.com/assets/3028125/12213714/5b208976-b632-11e5-8406-38d379ec46aa.png)
# Documentation
## Introduction
The NVIDIA Container Toolkit allows users to build and run GPU accelerated Docker containers. The toolkit includes a container runtime [library](https://github.com/NVIDIA/libnvidia-container) and utilities to automatically configure containers to leverage NVIDIA GPUs.
The full documentation and frequently asked questions are available on the [repository wiki](https://github.com/NVIDIA/nvidia-docker/wiki).
Product documentation including an architecture overview, platform support, installation and usage guides can be found in the [documentation repository](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/overview.html).
An introduction to the NVIDIA Container Runtime is also covered in our [blog post](https://devblogs.nvidia.com/gpu-containers-runtime/).
Frequently asked questions are available on the [wiki](https://github.com/NVIDIA/nvidia-docker/wiki).
## Quickstart
## Getting Started
**Make sure you have installed the [NVIDIA driver](https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-the-nvidia-driver) and a [supported version](https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#which-docker-packages-are-supported) of [Docker](https://docs.docker.com/engine/installation/) for your distribution (see [prerequisites](https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(version-2.0)#prerequisites)).**
**Make sure you have installed the [NVIDIA driver](https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-the-nvidia-driver) and Docker engine for your Linux distribution**
**Note that you do not need to install the CUDA Toolkit on the host system, but the NVIDIA driver needs to be installed**
**If you have a custom `/etc/docker/daemon.json`, the `nvidia-docker2` package might override it.**
For instructions on getting started with the NVIDIA Container Toolkit, refer to the [installation guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#docker).
#### Ubuntu 14.04/16.04/18.04, Debian Jessie/Stretch
## Usage
Ubuntu will install `docker.io` by default which isn't the latest version of Docker Engine. This implies that you will need to pin the version of nvidia-docker. [See more information here](https://github.com/NVIDIA/nvidia-docker/wiki/Frequently-Asked-Questions#how-do-i-install-20-if-im-not-using-the-latest-docker-version).
```sh
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo apt-get purge -y nvidia-docker
# Add the package repositories
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
```
#### CentOS 7 (docker-ce), RHEL 7.4/7.5 (docker-ce), Amazon Linux 1/2
If you are **not** using the official `docker-ce` package on CentOS/RHEL, use the next section.
```sh
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo yum remove nvidia-docker
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.repo | \
sudo tee /etc/yum.repos.d/nvidia-docker.repo
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo yum install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
# Test nvidia-smi with the latest official CUDA image
docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi
```
If `yum` reports a conflict on `/etc/docker/daemon.json` with the
`docker` package, you need to use the next section instead.
For docker-ce on `ppc64le`, look at the [FAQ](https://github.com/nvidia/nvidia-docker/wiki/Frequently-Asked-Questions#do-you-support-powerpc64-ppc64le).
#### CentOS 7 (docker), RHEL 7.4/7.5 (docker)
```sh
# If you have nvidia-docker 1.0 installed: we need to remove it and all existing GPU containers
docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
sudo yum remove nvidia-docker
# Add the package repositories
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.repo | \
sudo tee /etc/yum.repos.d/nvidia-container-runtime.repo
# Install the nvidia runtime hook
sudo yum install -y nvidia-container-runtime-hook
# Test nvidia-smi with the latest official CUDA image
# You can't use `--runtime=nvidia` with this setup.
docker run --rm nvidia/cuda:9.0-base nvidia-smi
```
#### Other distributions and architectures
Look at the [Installation section](https://github.com/nvidia/nvidia-docker/wiki/Installation-(version-2.0)) of the wiki.
## Changelog
New nvidia-docker packages have been released for docker 18.09.2 and 18.06.2 addressing [CVE-2019-5736](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5736)
Update nvidia-docker to adress runc critical vulnerability that allows specially-crafted containers to gain administrative privileges on the host.
```sh
# On Ubuntu/Debian
sudo apt upgrade
# On Centos/RHEL/Amazon Linux
sudo yum upgrade
```
The [user guide](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/user-guide.html) provides information on the configuration and command line options available when running GPU containers with Docker.
## Issues and Contributing
A signed copy of the [Contributor License Agreement](https://raw.githubusercontent.com/NVIDIA/nvidia-docker/master/CLA) needs to be provided to <a href="mailto:digits@nvidia.com">digits@nvidia.com</a> before any change can be accepted.
[Checkout the Contributing document!](CONTRIBUTING.md)
* Please let us know by [filing a new issue](https://github.com/NVIDIA/nvidia-docker/issues/new)
* You can contribute by opening a [pull request](https://help.github.com/articles/using-pull-requests/)
* You can contribute by opening a [pull request](https://help.github.com/articles/using-pull-requests/)

46
debian/changelog vendored
View file

@ -1,4 +1,48 @@
nvidia-docker2 (@VERSION@) UNRELEASED; urgency=medium
nvidia-docker2 (2.7.0~rc.2-1) UNRELEASED; urgency=medium
* Allow the toolkit version to be specified as a variable
-- NVIDIA CORPORATION <cudatools@nvidia.com> Thu, 04 Nov 2021 14:14:32 +0000
nvidia-docker2 (2.7.0~rc.1-1) UNRELEASED; urgency=medium
* Add AARCH64 package for Amazon Linux 2
* [BUILD] Allow for TAG to be specified in Makfile to match other projects
* Replace nvidia-container-runtime dependence with nvidia-container-toolit > 1.5.1
-- NVIDIA CORPORATION <cudatools@nvidia.com> Thu, 29 Apr 2021 05:25:25 +0000
nvidia-docker2 (2.6.0-1) UNRELEASED; urgency=medium
* Add dependence on nvidia-container-runtime >= 3.5.0
* Add Jenkinsfile for building packages
-- NVIDIA CORPORATION <cudatools@nvidia.com> Thu, 29 Apr 2021 05:25:25 +0000
nvidia-docker2 (2.5.0-1) UNRELEASED; urgency=medium
* Bump version to v2.5.0
* Add dependence on nvidia-container-runtime >= 3.4.0
* Update readme to point to the official documentatio
* Add %config directive to daemon.json for RPM installations
-- NVIDIA CORPORATION <cudatools@nvidia.com> Wed, 16 Sep 2020 13:55:52 +0000
nvidia-docker2 (2.4.0-1) UNRELEASED; urgency=medium
* 09a01276 Update package license to match source license
* b9c70155 Update dependence on nvidia-container-runtime to 3.3.0
-- NVIDIA CORPORATION <cudatools@nvidia.com> Wed, 08 Jul 2020 20:33:10 +0000
nvidia-docker2 (2.3.0-1) UNRELEASED; urgency=medium
* 0d3b049a Update build system to support multi-arch builds
* 8557216d Require new MIG changes
-- NVIDIA CORPORATION <cudatools@nvidia.com> Fri, 15 May 2020 12:04:57 +0000
nvidia-docker2 (2.2.2-1) UNRELEASED; urgency=medium
* 2e9f20b Improve pass-through of docker arguments
* 4edca2f Pave the way for a hypothetical transitional package from v1

5
debian/control vendored
View file

@ -12,7 +12,6 @@ Package: nvidia-docker2
Architecture: all
Breaks: nvidia-docker (<< 2.0.0)
Replaces: nvidia-docker (<< 2.0.0)
Depends: ${misc:Depends}, nvidia-container-runtime (>= @RUNTIME_VERSION@), @DOCKER_VERSION@
Depends: ${misc:Depends}, nvidia-container-toolkit (>= @TOOLKIT_VERSION@), @DOCKER_VERSION@
Description: nvidia-docker CLI wrapper
Replaces nvidia-docker with a new implementation based on
nvidia-container-runtime
Replaces nvidia-docker with a new implementation based on the NVIDIA Container Toolkit

208
debian/copyright vendored
View file

@ -3,33 +3,183 @@ Upstream-Name: nvidia-docker2
Source: https://github.com/NVIDIA/nvidia-docker
Files: *
Copyright: 2017 NVIDIA CORPORATION <cudatools@nvidia.com>
License: BSD-3-Clause
Copyright: 2017-2020 NVIDIA CORPORATION <cudatools@nvidia.com>
License: Apache-2.0
License: BSD-3-clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
.
Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License: Apache-2.0
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

2
debian/prepare vendored
View file

@ -3,5 +3,5 @@
set -e
sed -i "s;@SECTION@;${SECTION:+$SECTION/};g" debian/control
sed -i "s;@RUNTIME_VERSION@;${RUNTIME_VERSION};g" debian/control
sed -i "s;@TOOLKIT_VERSION@;${TOOLKIT_VERSION};g" debian/control
sed -i "s;@DOCKER_VERSION@;${DOCKER_VERSION};g" debian/control

View file

@ -1,5 +1,5 @@
ARG VERSION_ID
FROM amazonlinux:${VERSION_ID}
ARG BASEIMAGE
FROM ${BASEIMAGE}
# packaging dependencies
RUN yum install -y \
@ -9,16 +9,16 @@ RUN yum install -y \
# packaging
ARG PKG_VERS
ARG PKG_REV
ARG RUNTIME_VERSION
ARG TOOLKIT_VERSION
ARG DOCKER_VERSION
ENV VERSION $PKG_VERS
ENV RELEASE $PKG_REV
ENV DOCKER_VERSION $DOCKER_VERSION
ENV RUNTIME_VERSION $RUNTIME_VERSION
ENV TOOLKIT_VERSION $TOOLKIT_VERSION
# output directory
ENV DIST_DIR=/tmp/nvidia-container-runtime-$PKG_VERS/SOURCES
ENV DIST_DIR=/tmp/nvidia-docker2-$PKG_VERS/SOURCES
RUN mkdir -p $DIST_DIR /dist
COPY nvidia-docker $DIST_DIR
@ -27,11 +27,13 @@ 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" \
-D "toolkit_version $TOOLKIT_VERSION" \
SPECS/nvidia-docker2.spec && \
mv RPMS/noarch/*.rpm /dist

View file

@ -1,5 +1,5 @@
ARG VERSION_ID
FROM centos:${VERSION_ID}
ARG BASEIMAGE
FROM ${BASEIMAGE}
# packaging dependencies
RUN yum install -y \
@ -9,16 +9,16 @@ RUN yum install -y \
# packaging
ARG PKG_VERS
ARG PKG_REV
ARG RUNTIME_VERSION
ARG TOOLKIT_VERSION
ARG DOCKER_VERSION
ENV VERSION $PKG_VERS
ENV RELEASE $PKG_REV
ENV DOCKER_VERSION $DOCKER_VERSION
ENV DOCKER_VERSION $DOCKER_VERSION
ENV TOOLKIT_VERSION $TOOLKIT_VERSION
# output directory
ENV DIST_DIR=/tmp/nvidia-container-runtime-$PKG_VERS/SOURCES
ENV DIST_DIR=/tmp/nvidia-docker2-$PKG_VERS/SOURCES
RUN mkdir -p $DIST_DIR /dist
COPY nvidia-docker $DIST_DIR
@ -27,10 +27,13 @@ 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 "toolkit_version $TOOLKIT_VERSION" \
SPECS/nvidia-docker2.spec && \
mv RPMS/noarch/*.rpm /dist

View file

@ -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 \
@ -12,14 +13,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
# packaging
ARG PKG_VERS
ARG PKG_REV
ARG RUNTIME_VERSION
ARG TOOLKIT_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 TOOLKIT_VERSION $TOOLKIT_VERSION
ENV SECTION ""
# output directory
@ -33,7 +34,10 @@ COPY daemon.json $DIST_DIR/daemon.json
WORKDIR $DIST_DIR
COPY debian ./debian
RUN sed -i "s;@VERSION@;${REVISION};" debian/changelog && \
RUN sed -i "s;@VERSION@;${PKG_VERS};" $DIST_DIR/nvidia-docker
RUN sed -i "s;@TOOLKIT_VERSION@;${TOOLKIT_VERSION};" debian/control && \
dch --changelog debian/changelog --append "Bump nvidia-container-toolkit dependency to ${TOOLKIT_VERSION}" && \
dch --changelog debian/changelog -r "" && \
if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then exit 1; fi
CMD export DISTRIB="unstable" && \

View file

@ -0,0 +1,39 @@
ARG BASEIMAGE
FROM ${BASEIMAGE}
# packaging dependencies
RUN zypper install -y \
rpm-build && \
rm -rf /var/cache/zypp/*
# packaging
ARG PKG_VERS
ARG PKG_REV
ARG TOOLKIT_VERSION
ARG DOCKER_VERSION
ENV VERSION $PKG_VERS
ENV RELEASE $PKG_REV
ENV DOCKER_VERSION $DOCKER_VERSION
ENV TOOLKIT_VERSION $TOOLKIT_VERSION
# output directory
ENV DIST_DIR=/tmp/nvidia-docker2-$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 "toolkit_version $TOOLKIT_VERSION" \
SPECS/nvidia-docker2.spec && \
mv RPMS/noarch/*.rpm /dist

View file

@ -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 \
@ -13,15 +14,14 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
# packaging
ARG PKG_VERS
ARG PKG_REV
ARG RUNTIME_VERSION
ARG RUNTIME_VERSION
ARG TOOLKIT_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 TOOLKIT_VERSION $TOOLKIT_VERSION
ENV SECTION ""
# output directory
@ -35,8 +35,10 @@ COPY daemon.json $DIST_DIR/daemon.json
WORKDIR $DIST_DIR
COPY debian ./debian
RUN sed -i "s;@VERSION@;${REVISION};" debian/changelog && \
RUN sed -i "s;@VERSION@;${PKG_VERS};" $DIST_DIR/nvidia-docker
RUN sed -i "s;@TOOLKIT_VERSION@;${TOOLKIT_VERSION};" debian/control && \
dch --changelog debian/changelog --append "Bump nvidia-container-toolkit dependency to ${TOOLKIT_VERSION}" && \
dch --changelog debian/changelog -r "" && \
if [ "$REVISION" != "$(dpkg-parsechangelog --show-field=Version)" ]; then echo "$(dpkg-parsechangelog --show-field=Version)" && exit 1; fi
CMD export DISTRIB="$(lsb_release -cs)" && \

177
docker/docker.mk Normal file
View file

@ -0,0 +1,177 @@
# Copyright (c) 2021, NVIDIA CORPORATION. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
DOCKER ?= docker
MKDIR ?= mkdir
DIST_DIR ?= $(CURDIR)/dist
# 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 amazonlinux2
# By default run all native docker-based targets
docker-native:
# Define top-level build targets
docker%: SHELL:=/bin/bash
# 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)
# amd64 targets
AMD64_TARGETS := $(patsubst %, %-amd64, $(AMD64_TARGETS))
$(AMD64_TARGETS): ARCH := amd64
$(AMD64_TARGETS): %: --%
docker-amd64: $(AMD64_TARGETS)
# 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)
# arm64 targets
ARM64_TARGETS := $(patsubst %, %-arm64, $(ARM64_TARGETS))
$(ARM64_TARGETS): ARCH := arm64
$(ARM64_TARGETS): %: --%
docker-arm64: $(ARM64_TARGETS)
# aarch64 targets
AARCH64_TARGETS := $(patsubst %, %-aarch64, $(AARCH64_TARGETS))
$(AARCH64_TARGETS): ARCH := aarch64
$(AARCH64_TARGETS): %: --%
docker-aarch64: $(AARCH64_TARGETS)
# ppc64le targets
PPC64LE_TARGETS := $(patsubst %, %-ppc64le, $(PPC64LE_TARGETS))
$(PPC64LE_TARGETS): ARCH := ppc64le
$(PPC64LE_TARGETS): WITH_LIBELF := yes
$(PPC64LE_TARGETS): %: --%
docker-ppc64le: $(PPC64LE_TARGETS)
# 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-%
@
DEB_LIB_VERSION := $(LIB_VERSION)$(if $(LIB_TAG),~$(LIB_TAG))
DEB_PKG_REV := 1
DEB_TOOLKIT_VERSION := $(TOOLKIT_VERSION)$(if $(TOOLKIT_TAG),~$(TOOLKIT_TAG))
DEB_TOOLKIT_REV := 1
RPM_LIB_VERSION := $(LIB_VERSION)
RPM_PKG_REV := $(if $(LIB_TAG),0.1.$(LIB_TAG),1)
RPM_TOOLKIT_VERSION := $(TOOLKIT_VERSION)
RPM_TOOLKIT_REV := $(if $(TOOLKIT_TAG),0.1.$(TOOLKIT_TAG),1)
# private OS targets with defaults
# private ubuntu target
--ubuntu%: OS := ubuntu
--ubuntu%: LIB_VERSION := $(DEB_LIB_VERSION)
--ubuntu%: PKG_REV := $(DEB_PKG_REV)
--ubuntu%: MIN_TOOLKIT_PKG_VERSION := $(DEB_TOOLKIT_VERSION)-$(DEB_TOOLKIT_REV)
# private debian target
--debian%: OS := debian
--debian%: LIB_VERSION := $(DEB_LIB_VERSION)
--debian%: PKG_REV := $(DEB_PKG_REV)
--debian%: MIN_TOOLKIT_PKG_VERSION = $(DEB_TOOLKIT_VERSION)-$(DEB_TOOLKIT_REV)
# private centos target
--centos%: OS := centos
--centos%: PKG_REV := $(RPM_PKG_REV)
--centos%: MIN_TOOLKIT_PKG_VERSION := $(RPM_TOOLKIT_VERSION)-$(RPM_TOOLKIT_REV)
# private amazonlinux target
--amazonlinux%: OS := amazonlinux
--amazonlinux%: PKG_REV := $(RPM_PKG_REV)
--amazonlinux%: MIN_TOOLKIT_PKG_VERSION := $(RPM_TOOLKIT_VERSION)-$(RPM_TOOLKIT_REV)
# private opensuse-leap target with overrides
--opensuse-leap%: OS := opensuse-leap
--opensuse-leap%: PKG_REV := $(RPM_PKG_REV)
--opensuse-leap%: MIN_TOOLKIT_PKG_VERSION := $(RPM_TOOLKIT_VERSION)-$(RPM_TOOLKIT_REV)
--opensuse-leap%: BASEIMAGE = opensuse/leap:$(VERSION)
# private rhel target (actually built on centos)
--rhel%: OS := centos
--rhel%: PKG_REV := $(RPM_PKG_REV)
--rhel%: MIN_TOOLKIT_PKG_VERSION := $(RPM_TOOLKIT_VERSION)-$(RPM_TOOLKIT_REV)
--rhel%: VERSION = $(patsubst rhel%-$(ARCH),%,$(TARGET_PLATFORM))
--rhel%: ARTIFACTS_DIR = $(DIST_DIR)/rhel$(VERSION)/$(ARCH)
# Specify required docker versions
--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)
--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)
--centos%: DOCKER_VERSION := docker-ce >= 18.06.3.ce-3.el7
--amazonlinux2%: DOCKER_VERSION := docker >= 18.06.1ce-2.amzn2
--amazonlinux1%: DOCKER_VERSION := docker >= 18.06.1ce-2.16.amzn1
--opensuse-leap%: DOCKER_VERSION := docker >= 18.09.1_ce
--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 TOOLKIT_VERSION="$(MIN_TOOLKIT_PKG_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)

View file

@ -18,7 +18,7 @@ while [ $# -gt 0 ]; do
break
;;
version)
printf "NVIDIA Docker: 2.0.3\n"
printf "NVIDIA Docker: @VERSION@\n"
break
;;
--)

View file

@ -1,25 +1,202 @@
Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of NVIDIA CORPORATION nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View file

@ -16,11 +16,11 @@ Source1: daemon.json
Source2: LICENSE
Conflicts: nvidia-docker < 2.0.0
Requires: nvidia-container-runtime >= %{runtime_version}
Requires: nvidia-container-toolkit >= %{toolkit_version}
Requires: %{docker_version}
%description
Replaces nvidia-docker with a new implementation based on nvidia-container-runtime
Replaces nvidia-docker with a new implementation based on the NVIDIA Container Toolkit
%prep
cp %{SOURCE0} %{SOURCE1} %{SOURCE2} .
@ -34,6 +34,32 @@ install -m 644 -t %{buildroot}/etc/docker daemon.json
%files
%license LICENSE
%{_bindir}/nvidia-docker
/etc/docker/daemon.json
%config /etc/docker/daemon.json
%changelog
* Thu Nov 04 2021 NVIDIA CORPORATION <cudatools@nvidia.com> 2.7.0-0.1.rc.2
- Bump nvidia-container-toolkit dependency to %{toolkit_version}
- Allow the toolkit version to be specified as a variable
* Mon Sep 06 2021 NVIDIA CORPORATION <cudatools@nvidia.com> 2.7.0-0.1.rc.1
- Add AARCH64 package for Amazon Linux 2
- [BUILD] Allow for TAG to be specified in Makfile to match other projects
- Replace nvidia-container-runtime dependence with nvidia-container-toolit > 1.5.1
* Thu Apr 29 2021 NVIDIA CORPORATION <cudatools@nvidia.com> 2.6.0-1
- Add dependence on nvidia-container-runtime >= 3.5.0
- Add Jenkinsfile for building packages
* Wed Sep 16 2020 NVIDIA CORPORATION <cudatools@nvidia.com> 2.5.0-1
- Bump version to v2.5.0
- Add dependence on nvidia-container-runtime >= 3.4.0
- Update readme to point to the official documentatio
- Add %config directive to daemon.json for RPM installations
* Wed Jul 08 2020 NVIDIA CORPORATION <cudatools@nvidia.com> 2.4.0-1
- 09a01276 Update package license to match source license
- b9c70155 Update dependence on nvidia-container-runtime to 3.3.0
* Fri May 15 2020 NVIDIA CORPORATION <cudatools@nvidia.com> 2.3.0-1
- 0d3b049a Update build system to support multi-arch builds
- 8557216d Require new MIG changes