mirror of
				https://github.com/NVIDIA/nvidia-container-toolkit
				synced 2025-06-26 18:18:24 +00:00 
			
		
		
		
	Copy scripts from nvidia-container-toolkit-release
Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
		
							parent
							
								
									78f137a5ef
								
							
						
					
					
						commit
						cc9c3c0d28
					
				
							
								
								
									
										94
									
								
								DEVELOPMENT.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										94
									
								
								DEVELOPMENT.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,94 @@ | ||||
| # NVIDIA Container Toolkit Release Tooling | ||||
| 
 | ||||
| This repository allows for the components of the NVIDIA container stack to be | ||||
| built and released as the NVIDIA Container Toolkit from a single repository. The components: | ||||
| * `libnvidia-container` | ||||
| * `nvidia-container-runtime` | ||||
| * `nvidia-docker` | ||||
| are included as submodules in the `third_party` folder. | ||||
| 
 | ||||
| The `nvidia-container-toolkit` resides in this repo directly. | ||||
| 
 | ||||
| ## Building | ||||
| 
 | ||||
| In oder to build the packages, the following command is executed | ||||
| ```sh | ||||
| ./scripts/build-all.sh TARGET | ||||
| ``` | ||||
| where `TARGET` is a make target that is valid for each of the sub-components. | ||||
| 
 | ||||
| These include: | ||||
| * `ubuntu18.04-amd64` | ||||
| * `docker-all` | ||||
| with the later generating for all supported distribution and platform combinations. | ||||
| 
 | ||||
| The packages are generated in the `dist` folder. | ||||
| 
 | ||||
| ## Testing local changes | ||||
| 
 | ||||
| In oder to use the same build logic to be used to generate packages with local changes, | ||||
| the location of the individual components can be overridded using the: `LIBNVIDIA_CONTAINER_ROOT`, | ||||
| `NVIDIA_CONTAINER_TOOLKIT_ROOT`, `NVIDIA_CONTAINER_RUNTIME_ROOT`, and `NVIDIA_DOCKER_ROOT` | ||||
| environment variables. | ||||
| 
 | ||||
| ## Testing packages locally | ||||
| 
 | ||||
| ### Ubuntu | ||||
| 
 | ||||
| Launch a docker container: | ||||
| 
 | ||||
| ``` | ||||
| docker run --rm -it \ | ||||
|     -v $(pwd):/work \ | ||||
|     -v $(pwd)/dist/ubuntu18.04/amd64:/local-repository \ | ||||
|     -w /work \ | ||||
|         ubuntu:18.04 | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ``` | ||||
| apt-get update && apt-get install -y apt-utils | ||||
| ``` | ||||
| 
 | ||||
| ``` | ||||
| echo "deb [trusted=yes] file:/local-repository/ ./" > /etc/apt/sources.list.d/local.list | ||||
| ``` | ||||
| 
 | ||||
| ``` | ||||
| cd /local-repository && apt-ftparchive packages . > Packages | ||||
| ``` | ||||
| 
 | ||||
| ``` | ||||
| apt-get update | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ### Centos | ||||
| 
 | ||||
| ``` | ||||
|     docker run --rm -it \ | ||||
|         -v $(pwd):/work \ | ||||
|         -v $(pwd)/dist/centos8/x86_64:/local-repository \ | ||||
|         -w /work \ | ||||
|             centos:8 | ||||
| ``` | ||||
| 
 | ||||
| ``` | ||||
| yum install -y createrepo | ||||
| ``` | ||||
| 
 | ||||
| ``` | ||||
| createrepo /local-repository | ||||
| ``` | ||||
| 
 | ||||
| ``` | ||||
| cat >/etc/yum.repos.d/local.repo <<EOL | ||||
| [local] | ||||
| name=NVIDIA Container Toolkit Local Packages | ||||
| baseurl=file:///local-repository | ||||
| enabled=1 | ||||
| gpgcheck=0 | ||||
| protect=1 | ||||
| EOL | ||||
| ``` | ||||
							
								
								
									
										59
									
								
								scripts/build-all.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								scripts/build-all.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # 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. | ||||
| 
 | ||||
| # This script is used to build the packages for the components of the NVIDIA | ||||
| # Container Stack. These include the nvidia-container-toolkit in this repository | ||||
| # as well as the components included in the third_party folder. | ||||
| # All required packages are generated in the specified dist folder. | ||||
| 
 | ||||
| function assert_usage() { | ||||
|     echo "Missing argument $1" | ||||
|     echo "$(basename ${BASH_SOURCE[0]}) TARGET" | ||||
|     exit 1 | ||||
| } | ||||
| 
 | ||||
| set -e -x | ||||
| 
 | ||||
| SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../scripts && pwd )" | ||||
| PROJECT_ROOT="$( cd ${SCRIPTS_DIR}/.. && pwd )" | ||||
| 
 | ||||
| if [[ $# -ne 1 ]]; then | ||||
|     assert_usage "TARGET" | ||||
| fi | ||||
| 
 | ||||
| TARGET=$1 | ||||
| 
 | ||||
| : ${DIST_DIR:=${PROJECT_ROOT}/dist} | ||||
| export DIST_DIR | ||||
| 
 | ||||
| echo "Building ${TARGET} for all packages to ${DIST_DIR}" | ||||
| 
 | ||||
| : ${LIBNVIDIA_CONTAINER_ROOT:=${PROJECT_ROOT}/third_party/libnvidia-container} | ||||
| : ${NVIDIA_CONTAINER_TOOLKIT_ROOT:=${PROJECT_ROOT}} | ||||
| : ${NVIDIA_CONTAINER_RUNTIME_ROOT:=${PROJECT_ROOT}/third_party/nvidia-container-runtime} | ||||
| : ${NVIDIA_DOCKER_ROOT:=${PROJECT_ROOT}/third_party/nvidia-docker} | ||||
| 
 | ||||
| # Build libnvidia-container | ||||
| make -C ${LIBNVIDIA_CONTAINER_ROOT} -f mk/docker.mk ${TARGET} | ||||
| 
 | ||||
| # Build nvidia-container-toolkit | ||||
| make -C ${NVIDIA_CONTAINER_TOOLKIT_ROOT} ${TARGET} | ||||
| 
 | ||||
| # Build nvidia-container-runtime | ||||
| make -C ${NVIDIA_CONTAINER_RUNTIME_ROOT} ${TARGET} | ||||
| 
 | ||||
| # Build nvidia-docker2 | ||||
| make -C ${NVIDIA_DOCKER_ROOT} ${TARGET} | ||||
							
								
								
									
										59
									
								
								scripts/get-versions.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								scripts/get-versions.sh
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,59 @@ | ||||
| #!/usr/bin/env bash | ||||
| 
 | ||||
| # 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. | ||||
| 
 | ||||
| # This script is used to build the packages for the components of the NVIDIA | ||||
| # Container Stack. These include the nvidia-container-toolkit in this repository | ||||
| # as well as the components included in the third_party folder. | ||||
| # All required packages are generated in the specified dist folder. | ||||
| 
 | ||||
| function assert_usage() { | ||||
|     exit 1 | ||||
| } | ||||
| 
 | ||||
| set -e | ||||
| 
 | ||||
| SCRIPTS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../scripts && pwd )" | ||||
| PROJECT_ROOT="$( cd ${SCRIPTS_DIR}/.. && pwd )" | ||||
| 
 | ||||
| : ${LIBNVIDIA_CONTAINER_ROOT:=${PROJECT_ROOT}/third_party/libnvidia-container} | ||||
| : ${NVIDIA_CONTAINER_TOOLKIT_ROOT:=${PROJECT_ROOT}} | ||||
| : ${NVIDIA_CONTAINER_RUNTIME_ROOT:=${PROJECT_ROOT}/third_party/nvidia-container-runtime} | ||||
| : ${NVIDIA_DOCKER_ROOT:=${PROJECT_ROOT}/third_party/nvidia-docker} | ||||
| 
 | ||||
| # Get version for libnvidia-container | ||||
| libnvidia_container_version=$(grep "#define NVC_VERSION" ${LIBNVIDIA_CONTAINER_ROOT}/src/nvc.h \ | ||||
|     | sed -e 's/#define NVC_VERSION[[:space:]]"\(.*\)"/\1/') | ||||
| 
 | ||||
| # Get version for nvidia-container-toolit | ||||
| nvidia_container_toolkit_version=$(grep -m 1 "^LIB_VERSION := " ${NVIDIA_CONTAINER_TOOLKIT_ROOT}/Makefile | sed -e 's/LIB_VERSION :=[[:space:]]\(.*\)[[:space:]]*/\1/') | ||||
| nvidia_container_toolkit_tag=$(grep -m 1 "^LIB_TAG .= " ${NVIDIA_CONTAINER_TOOLKIT_ROOT}/Makefile | sed -e 's/LIB_TAG .=[[:space:]]\(.*\)[[:space:]]*/\1/') | ||||
| nvidia_container_toolkit_version="${nvidia_container_toolkit_version}${nvidia_container_toolkit_tag:+~${nvidia_container_toolkit_tag}}" | ||||
| 
 | ||||
| # Get version for nvidia-container-runtime | ||||
| nvidia_container_runtime_version=$(grep -m 1 "^LIB_VERSION := " ${NVIDIA_CONTAINER_RUNTIME_ROOT}/Makefile | sed -e 's/LIB_VERSION :=[[:space:]]\(.*\)[[:space:]]*/\1/') | ||||
| nvidia_container_runtime_tag=$(grep -m 1 "^LIB_TAG .= " ${NVIDIA_CONTAINER_RUNTIME_ROOT}/Makefile | sed -e 's/LIB_TAG .=[[:space:]]\(.*\)[[:space:]]*/\1/') | ||||
| nvidia_container_runtime_version="${nvidia_container_runtime_version}${nvidia_container_runtime_tag:+~${nvidia_container_runtime_tag}}" | ||||
| 
 | ||||
| # Get version for nvidia-docker | ||||
| nvidia_docker_version=$(grep -m 1 "^LIB_VERSION := " ${NVIDIA_DOCKER_ROOT}/Makefile | sed -e 's/LIB_VERSION :=[[:space:]]\(.*\)[[:space:]]*/\1/') | ||||
| nvidia_docker_tag=$(grep -m 1 "^LIB_TAG .= " ${NVIDIA_DOCKER_ROOT}/Makefile | sed -e 's/LIB_TAG .=[[:space:]]\(.*\)[[:space:]]*/\1/') | ||||
| nvidia_docker_version="${nvidia_docker_version}${nvidia_docker_tag:+~${nvidia_docker_tag}}" | ||||
| 
 | ||||
| 
 | ||||
| echo "libnvidia-container version=${libnvidia_container_version}" | ||||
| echo "nvidia-container-toolkit version=${nvidia_container_toolkit_version}" | ||||
| echo "nvidia-container-runtime version=${nvidia_container_runtime_version}" | ||||
| echo "nvidia-docker version=${nvidia_docker_version}" | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user