mirror of
https://github.com/NVIDIA/nvidia-container-toolkit
synced 2024-11-30 00:11:59 +00:00
108 lines
4.9 KiB
Markdown
108 lines
4.9 KiB
Markdown
|
# Testing Packaging Workflows
|
||
|
|
||
|
## Building the Docker images:
|
||
|
|
||
|
```bash
|
||
|
make images
|
||
|
```
|
||
|
|
||
|
This assumes that the `nvidia-docker` workflow is being tested and that the test packages have been published to the `elezar.github.io` GitHub pages page. These can be overridden
|
||
|
using make variables.
|
||
|
|
||
|
Valid values for `workflow` are:
|
||
|
* `nvidia-docker`
|
||
|
* `nvidia-container-runtime`
|
||
|
|
||
|
This follows the instructions for setting up the [`nvidia-docker` repostitory](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#setting-up-nvidia-container-toolkit).
|
||
|
|
||
|
|
||
|
## Testing local package changes
|
||
|
|
||
|
Running:
|
||
|
```bash
|
||
|
make local-ubuntu18.04
|
||
|
```
|
||
|
will build the `ubuntu18.04-amd64` packages for release and launch a docker container with these packages added to a local APT repository.
|
||
|
|
||
|
The various `apt` workflows can then be tested as if the packages were released to the `libnvidia-container` experimental repository.
|
||
|
|
||
|
The `local-centos8` make target is available for testing the `centos8-x86_64` workflows as representative of `yum`-based installation workflows.
|
||
|
|
||
|
|
||
|
### Example
|
||
|
|
||
|
In the `centos8`-based container above we see the following `nvidia-docker2` packages available with the `local-repository` disabled:
|
||
|
|
||
|
```bash
|
||
|
$ yum list --showduplicates nvidia-docker2 | tail -2
|
||
|
nvidia-docker2.noarch 2.5.0-1 nvidia-docker
|
||
|
nvidia-docker2.noarch 2.6.0-1 nvidia-docker
|
||
|
```
|
||
|
|
||
|
Installing `nvidia-docker2` shows:
|
||
|
```bash
|
||
|
$ yum install -y nvidia-docker2
|
||
|
```
|
||
|
|
||
|
installs the following packages:
|
||
|
```bash
|
||
|
$ yum list installed | grep nvidia
|
||
|
libnvidia-container-tools.x86_64 1.5.1-1 @libnvidia-container
|
||
|
libnvidia-container1.x86_64 1.5.1-1 @libnvidia-container
|
||
|
nvidia-container-runtime.x86_64 3.5.0-1 @nvidia-container-runtime
|
||
|
nvidia-container-toolkit.x86_64 1.5.1-2 @nvidia-container-runtime
|
||
|
nvidia-docker2.noarch 2.6.0-1 @nvidia-docker
|
||
|
```
|
||
|
Note the repositories where these packages were installed from.
|
||
|
|
||
|
We now enable the `local-repository` to simulate the new packages being published to the `libnvidia-container` experimental repository and check the available `nvidia-docker2` versions:
|
||
|
```bash
|
||
|
$ yum-config-manager --enable local-repository
|
||
|
$ yum list --showduplicates nvidia-docker2 | tail -2
|
||
|
nvidia-docker2.noarch 2.6.0-1 nvidia-docker
|
||
|
nvidia-docker2.noarch 2.6.1-0.1.rc.1 local-repository
|
||
|
```
|
||
|
Showing the new version available in the local repository.
|
||
|
|
||
|
Running:
|
||
|
```
|
||
|
$ yum install nvidia-docker2
|
||
|
Last metadata expiration check: 0:01:15 ago on Fri Sep 24 12:49:20 2021.
|
||
|
Package nvidia-docker2-2.6.0-1.noarch is already installed.
|
||
|
Dependencies resolved.
|
||
|
===============================================================================================================================
|
||
|
Package Architecture Version Repository Size
|
||
|
===============================================================================================================================
|
||
|
Upgrading:
|
||
|
libnvidia-container-tools x86_64 1.6.0-0.1.rc.1 local-repository 48 k
|
||
|
libnvidia-container1 x86_64 1.6.0-0.1.rc.1 local-repository 95 k
|
||
|
nvidia-container-toolkit x86_64 1.6.0-0.1.rc.1 local-repository 1.5 M
|
||
|
replacing nvidia-container-runtime.x86_64 3.5.0-1
|
||
|
nvidia-docker2 noarch 2.6.1-0.1.rc.1 local-repository 13 k
|
||
|
|
||
|
Transaction Summary
|
||
|
===============================================================================================================================
|
||
|
Upgrade 4 Packages
|
||
|
|
||
|
Total size: 1.7 M
|
||
|
```
|
||
|
Showing that all the components of the stack will be updated with versions from the `local-repository`.
|
||
|
|
||
|
After installation the installed packages are shown as:
|
||
|
```bash
|
||
|
$ yum list installed | grep nvidia
|
||
|
libnvidia-container-tools.x86_64 1.6.0-0.1.rc.1 @local-repository
|
||
|
libnvidia-container1.x86_64 1.6.0-0.1.rc.1 @local-repository
|
||
|
nvidia-container-toolkit.x86_64 1.6.0-0.1.rc.1 @local-repository
|
||
|
nvidia-docker2.noarch 2.6.1-0.1.rc.1 @local-repository
|
||
|
```
|
||
|
Showing that:
|
||
|
1. All versions have been installed from the same repository
|
||
|
2. The `nvidia-container-runtime` package was removed as it is no longer required.
|
||
|
|
||
|
The `nvidia-container-runtime` executable is, however, still present on the system:
|
||
|
```bash
|
||
|
# ls -l /usr/bin/nvidia-container-runtime
|
||
|
-rwxr-xr-x 1 root root 2256280 Sep 24 12:42 /usr/bin/nvidia-container-runtime
|
||
|
```
|