use per user docker socket if system docker socket doesn't exist

This commit is contained in:
Adil Hafeez 2025-01-08 14:00:01 -08:00
parent aa11113cea
commit a48c9d654a
2 changed files with 21 additions and 1 deletions

View file

@ -4,7 +4,7 @@ import time
import sys
import glob
import docker
from cli.utils import getLogger
from cli.utils import getLogger, update_docker_host_env
from cli.consts import (
ARCHGW_DOCKER_IMAGE,
ARCHGW_DOCKER_NAME,
@ -110,6 +110,7 @@ def start_arch(arch_config_file, env, log_timeout=120, foreground=False):
log.info("Starting arch gateway")
try:
update_docker_host_env()
client = docker.from_env()
try:

View file

@ -1,3 +1,4 @@
import os
import yaml
import logging
import docker
@ -19,8 +20,26 @@ def getLogger(name="cli"):
log = getLogger(__name__)
def update_docker_host_env():
"""
Update DOCKER_HOST environment variable to use the local Docker socket
"""
if os.getenv("DOCKER_HOST"):
return
default_docker_socket = os.getenv("DEFAULT_DOCKER_SOCKET", "/var/run/docker.sock")
if not os.path.exists(default_docker_socket):
home_dir = os.getenv("HOME")
docker_host = f"unix://{home_dir}/.docker/run/docker.sock"
log.info(
f"Default docker socket {default_docker_socket} not found, using {docker_host}"
)
os.environ["DOCKER_HOST"] = docker_host
def validate_schema(arch_config_file: str) -> None:
try:
update_docker_host_env()
client = docker.from_env()
# Run the container with detach=True to avoid blocking main process
container = client.containers.run(