diff options
| author | dd <dd@wx.tnyzeq.icu> | 2024-10-06 21:52:10 +0200 |
|---|---|---|
| committer | dd <dd@wx.tnyzeq.icu> | 2024-10-06 22:21:49 +0200 |
| commit | 8de017a4259ff4b45239b59694586a1ae2e77c86 (patch) | |
| tree | 58a08b27bace9cb2697aa83249393b293f2f97d6 | |
| parent | dc35fa097f50b756df307122cc6a32148a12cb96 (diff) | |
| download | vyos-jenkins-8de017a4259ff4b45239b59694586a1ae2e77c86.tar.gz vyos-jenkins-8de017a4259ff4b45239b59694586a1ae2e77c86.zip | |
updated circinus image builder docker run
| -rwxr-xr-x | new/image_builder.py | 56 | ||||
| -rwxr-xr-x | new/package_builder.py | 2 |
2 files changed, 30 insertions, 28 deletions
diff --git a/new/image_builder.py b/new/image_builder.py index 3d99975..ddf3247 100755 --- a/new/image_builder.py +++ b/new/image_builder.py @@ -21,6 +21,8 @@ class ImageBuilder: "sagitta": "1.4.x", "circinus": "1.5.x", } + docker_image = None + vyos_build_repo = None def __init__(self, branch, vyos_build_git, vyos_mirror, extra_options, flavor, build_by, version, bind_addr, bind_port, keep_build): @@ -48,14 +50,14 @@ class ImageBuilder: logging.info("Using supplied APT repository at %s" % vyos_mirror) logging.info("Pulling vyos-build docker image") - docker_image = "vyos/vyos-build:%s" % self.branch - execute("docker pull %s" % quote_all(docker_image), passthrough=True) + self.docker_image = "vyos/vyos-build:%s" % self.branch + execute("docker pull %s" % quote_all(self.docker_image), passthrough=True) - vyos_build_repo = os.path.join(self.project_dir, "build", "%s-image-build" % self.branch) - git = Git(vyos_build_repo) + self.vyos_build_repo = os.path.join(self.project_dir, "build", "%s-image-build" % self.branch) + git = Git(self.vyos_build_repo) if not self.keep_build: if git.exists(): - rmtree(vyos_build_repo) + rmtree(self.vyos_build_repo) if not git.exists(): git.clone(self.vyos_build_git, self.branch) @@ -93,32 +95,12 @@ class ImageBuilder: build_image_pieces.append(self.extra_options) build_image_command = " ".join(build_image_pieces) - # docker run - docker_pieces = [ - "docker run --rm -it", - "-v %s:/vyos" % quote(vyos_build_repo), - ] - if self.vyos_mirror == "local": - apt_key_path = os.path.join(self.project_dir, "apt", "apt.gpg.key") - docker_pieces.extend([ - "-v %s:/opt/apt.gpg.key" % quote(apt_key_path), - ]) - docker_pieces.extend([ - "-w /vyos --privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0", - "-e GOSU_UID=%s -e GOSU_GID=%s" % (os.getuid(), os.getgid()), - docker_image, - build_image_command, - ]) - docker_command = " ".join(docker_pieces) - logging.info("Using build image command: '%s'" % build_image_command) - logging.info("Using docker run command: '%s'" % docker_command) logging.info("Executing image build now...") - - execute(docker_command, passthrough=True) + self.docker_run(build_image_command) image_path = None - build_dir = os.path.join(vyos_build_repo, "build") + build_dir = os.path.join(self.vyos_build_repo, "build") if os.path.exists(build_dir): for entry in os.scandir(build_dir): if version in entry.name and entry.name.endswith(".iso"): @@ -139,6 +121,26 @@ class ImageBuilder: elapsed = round(monotonic() - begin, 3) logging.info("Done in %s seconds, image is available here: %s" % (elapsed, new_image_path)) + def docker_run(self, command): + docker_pieces = [ + "docker run --rm -it", + "-v %s:/vyos" % quote(self.vyos_build_repo), + ] + if self.vyos_mirror == "local": + apt_key_path = os.path.join(self.project_dir, "apt", "apt.gpg.key") + docker_pieces.extend([ + "-v %s:/opt/apt.gpg.key" % quote(apt_key_path), + ]) + docker_pieces.extend([ + "-w /vyos --privileged --sysctl net.ipv6.conf.lo.disable_ipv6=0", + "-e GOSU_UID=%s -e GOSU_GID=%s" % (os.getuid(), os.getgid()), + self.docker_image, + command, + ]) + docker_command = " ".join(docker_pieces) + + execute(docker_command, passthrough=True) + def start_local_webserver(self): address = self.get_local_ip() if not self.bind_addr else self.bind_addr port = self.get_free_port(address) if not self.bind_port else self.bind_port diff --git a/new/package_builder.py b/new/package_builder.py index 3f01520..fea3a41 100755 --- a/new/package_builder.py +++ b/new/package_builder.py @@ -11,7 +11,7 @@ from lib.apt import Apt from lib.cache import Cache from lib.git import Git from lib.github import GitHub -from lib.helpers import setup_logging, quote_all, execute, ProcessException, rmtree, refuse_root +from lib.helpers import setup_logging, quote_all, execute, ProcessException, refuse_root, rmtree class Builder: |
