Coverage for src/container_collection/docker/submit_docker_job.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.1.0, created at 2024-09-25 18:23 +0000

1from docker import APIClient 

2 

3 

4def submit_docker_job(api_client: APIClient, job_definition: dict, volume: str) -> str: 

5 """ 

6 Submit Docker job. 

7 

8 Parameters 

9 ---------- 

10 api_client 

11 Docker API client. 

12 job_definition 

13 Docker job definition used to create job container. 

14 volume 

15 Name of the docker volume. 

16 

17 Returns 

18 ------- 

19 : 

20 Container ID. 

21 """ 

22 

23 host_config = api_client.create_host_config(binds={volume: {"bind": "/mnt", "mode": "rw"}}) 

24 

25 container = api_client.create_container(**job_definition, host_config=host_config) 

26 container_id = container.get("Id") 

27 

28 api_client.start(container=container_id) 

29 

30 return container_id