From 98c28b40ca554d48fffc74aa3a0af82c1fa7a1a4 Mon Sep 17 00:00:00 2001 From: Adar Nimrod Date: Sat, 22 May 2021 13:13:33 +0300 Subject: [PATCH] A more reliable way to get the container id. The hostname is not always the container id. Get the container id from /proc/1/cgroup. Fixes #1918. --- pre_commit/languages/docker.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pre_commit/languages/docker.py b/pre_commit/languages/docker.py index 5b21ec94c..cb29a021d 100644 --- a/pre_commit/languages/docker.py +++ b/pre_commit/languages/docker.py @@ -1,7 +1,6 @@ import hashlib import json import os -import socket from typing import Sequence from typing import Tuple @@ -29,9 +28,10 @@ def _is_in_docker() -> bool: def _get_docker_path(path: str) -> str: if not _is_in_docker(): return path - hostname = socket.gethostname() + with open('/proc/1/cgroup', 'r') as f: + container_id = os.path.basename(f.readlines()[0]).strip() - _, out, _ = cmd_output_b('docker', 'inspect', hostname) + _, out, _ = cmd_output_b('docker', 'inspect', container_id) container, = json.loads(out) for mount in container['Mounts']: