AirSim-Drone-Racing-Lab/docker/build_docker_image.py

56 строки
1.6 KiB
Python

from argparse import ArgumentParser
import subprocess
class DockerImageBuilder:
def __init__(self, args):
self.args = args
def build_docker_image(self):
# if a base image is not specified, we use the Ubuntu 18, CUDA 10 image from NVIDIA
docker_build_command = [
"docker",
"build",
"--network=host",
"-t",
self.args.target_image,
"-f",
self.args.dockerfile,
"--build-arg",
"BASE_IMAGE=" + self.args.base_image,
".",
]
print(" ".join(docker_build_command))
subprocess.call(docker_build_command)
def main(args):
docker_image_builder = DockerImageBuilder(args)
docker_image_builder.build_docker_image()
if __name__ == "__main__":
parser = ArgumentParser(description="AirSim Drone Racing Lab docker image builder")
parser.add_argument(
"--dockerfile", type=str, default="Dockerfile", help="path to docker file"
)
parser.add_argument(
"--base_image",
type=str,
default="nvidia/cudagl:10.0-devel-ubuntu18.04",
help="base image name AND tag, on top of which the target image is built",
)
parser.add_argument(
"--target_image", type=str, help="desired name of target image name AND tag"
)
args = parser.parse_args()
# if a target image name is not specified, let's call it adrl:SOURCE_IMAGE_TAG
if not args.target_image:
target_image_tag = args.base_image.split(":")[1]
args.target_image = "adrl" + ":" + target_image_tag
main(args)