def test_run_with_local_image_does_not_pull(mocker): mocker.patch("lava_dispatcher.utils.docker.DockerRun.__check_image_arch__") docker = DockerRun("myimage") docker.local(True) action = mocker.MagicMock() docker.run("date", action=action) action.run_cmd.assert_has_calls([ mocker.call(["docker", "image", "inspect", mocker.ANY, "myimage"]), mocker.call(["docker", "run", "--rm", "--init", "myimage", "date"]), ])
def run(self, connection, max_end_time): job_id = self.job.job_id script = ["#!/bin/sh", "exec 2>&1", "set -ex"] + self.steps script = "\n".join(script) + "\n" scriptfile = self.path / "postprocess.sh" scriptfile.write_text(script) scriptfile.chmod(0o755) docker = DockerRun(self.image) docker.local(self.local) docker.add_device("/dev/kvm", skip_missing=True) docker.bind_mount(self.path, LAVA_DOWNLOADS) docker.hostname("lava") docker.workdir(LAVA_DOWNLOADS) docker.run(f"{LAVA_DOWNLOADS}/postprocess.sh", action=self) return connection